导出到csv:罗马尼亚语言字符失败

时间:2017-09-20 11:15:49

标签: php mysql utf-8 export-to-csv diacritics

Helo我有变音符号的问题..在Mysql中它很好我设置了你在这张照片中看到的utf8_general_ci enter image description here

在我的网站上,你可以看到

enter image description here

但是当我导出到csv文件时不起作用.. 另一个带有变音符号的文件读取我的excel,但事实并非如此。

enter image description here

我使用此代码进行导出

function doCsv(){

    var table = document.getElementById("exportTable").innerHTML;
    var data = table.replace(/<thead>/g,'').replace(/<\/thead>/g,'')
    .replace(/<tbody>/g,'').replace(/<\/tbody>/g,'')
    .replace(/<tr role="row" class="odd">/g,'').replace(/<tr role="row" class="even">/g,'').replace(/<\/tr>/g,'\r\n')
    .replace(/<th style="background-color:#6699ff;">/g,'').replace(/<\/th>/g,';')
    .replace(/<td>/g,'').replace(/<\/td>/g,';')
    .replace(/\t/g,'').replace(/\n/g,'');
    var link = document.createElement('a');
    link.download = "exportToCSV.csv";
    link.href = "data:application/csv," + escape(data);
    link.click();

如果我发出警报,它会保持良好状态:

enter image description here

有人帮我吗?

1 个答案:

答案 0 :(得分:0)

请参阅%u0218?这意味着某些东西正在转换为Unicode。你不想要那个。您想要utf8(或utf8mb4)。

从表格中选择十六进制。对于这些字母:ĂÎŞŢÂ,如果在UTF-8中正确编码,则应该获得此十六进制:C482 C38E C59E C5A2 C382。请注意,每个带重音的字母都会变为2个十六进制字节。

你的第二次尝试回归ĂÎŞŢÂ,这是&#34; Mojibake&#34;为ĂÎŞŢÂ。它的十六进制是C384E2809AC383C5BDC385C5BEC385C2A2C383E2809A

我讨论了Mojibake,并在Trouble with UTF-8 characters; what I see is not what I stored中指出了错误。

不知何故,您的Excel代码需要说出口UTF-8,而不是unicode。

您的表格必须为utf8,而不是latin1

导入必须声明数据为utf8