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

Exporting to csv: Romanian Language character failure

Helo 我的变音符号有问题.. 在 Mysql 中没问题我设置了 utf8_general_ci 你可以在这张图片中看到

在我的网站上可以看到

但是当我导出到 csv 文件时不起作用.. 另一个带有变音符号的文件读取我的 excel 但这个不是。

我使用此代码进行导出

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();

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

有人帮我吗?

看到%u0218了吗?这意味着 something 正在转换为 Unicode。你不想要那个。您想要 utf8(或 utf8mb4)。

Select 来自 table 的 HEX。对于这些字母:ĂÎŞŢÂ,如果以 UTF-8 正确编码,您应该得到这个十六进制:C482 C38E C59E C5A2 C382。请注意,每个重音字母都会变成 2 个十六进制字节。

您的第二次尝试返回 ĂÎŞŢÂĂÎŞŢ 为 "Mojibake"。它的十六进制是C384E2809AC383C5BDC385C5BEC385C2A2C383E2809A

我讨论了 Mojibake 并指出了 中做错了什么。

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

而你的 table 必须是 utf8,而不是 latin1

并且导入必须声明数据为utf8.