diff --git a/src/components/MarkdownViewer.vue b/src/components/MarkdownViewer.vue index 090ed2c..ea499bc 100644 --- a/src/components/MarkdownViewer.vue +++ b/src/components/MarkdownViewer.vue @@ -610,7 +610,7 @@ export default { // Add global functions for table operations if (!window.copyTable) { window.copyTable = (tableId) => { - const wrapper = markdownContainer.value.querySelector(`[data-table-id="${tableId}"]`); + const wrapper = document.querySelector(`[data-table-id="${tableId}"]`); const table = wrapper?.querySelector('table'); if (!table) return; @@ -637,7 +637,7 @@ export default { if (!window.exportTableToCSV) { window.exportTableToCSV = (tableId) => { - const wrapper = markdownContainer.value.querySelector(`[data-table-id="${tableId}"]`); + const wrapper = document.querySelector(`[data-table-id="${tableId}"]`); const table = wrapper?.querySelector('table'); if (!table) return; @@ -656,7 +656,9 @@ export default { csv += rowData.join(',') + '\n'; }); - const blob = new Blob([csv], { type: 'text/csv' }); + // Add UTF-8 BOM for proper character encoding + const BOM = '\uFEFF'; + const blob = new Blob([BOM + csv], { type: 'text/csv;charset=utf-8;' }); const url = window.URL.createObjectURL(blob); const a = document.createElement('a'); a.href = url; diff --git a/src/components/ScenarioFileUpload.vue b/src/components/ScenarioFileUpload.vue index 8fda57f..814a31e 100644 --- a/src/components/ScenarioFileUpload.vue +++ b/src/components/ScenarioFileUpload.vue @@ -158,7 +158,7 @@ const formatSize = (bytes) => {