【问题标题】:JSON to EXCEL turkish character issueJSON到EXCEL土耳其字符问题
【发布时间】:2018-07-27 08:28:19
【问题描述】:

我从 MySQL 获得 JSON 数据。它与土耳其字符看起来不错。但是当我尝试将该 JSON 导出为 csv 格式时,土耳其语字符发生了变化。

我正在尝试用这个导出; http://jsfiddle.net/JXrwM/11407/

function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) {
    var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;


    var CSV = 'sep=,' + '\r\n\n';

    if (ShowLabel) {
        var row = "";

        for (var index in arrData[0]) {

            row += index + ',';
        }

        row = row.slice(0, -1);

        CSV += row + '\r\n';
    }

    for (var i = 0; i < arrData.length; i++) {
        var row = "";

        for (var index in arrData[i]) {
            row += '"' + arrData[i][index] + '",';
        }

        row.slice(0, row.length - 1);

        CSV += row + '\r\n';
    }

    if (CSV == '') {        
        alert("Invalid data");
        return;
    }   

    var fileName = "MyReport_";
    fileName += ReportTitle.replace(/ /g,"_");   

    var uri = 'data:text/html;charset=ISO-8859-9,' + escape(CSV);


    var link = document.createElement("a");    
    link.href = uri;

    link.style = "visibility:hidden";
    link.download = fileName + ".csv";

    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
}

【问题讨论】:

  • 是不是和这个一样-stackoverflow.com/questions/44330730/…
  • 不一样。我可以将字符 ö 更改为 o 但是。我需要 ö 在 excel 中。
  • 我通常使用 notepad++ encoding &gt; Encode in UTF-8, then Save as 函数来更改编码以处理 UTF 字符。我不知道如何通过 scripts/java/vba 进行此操作。

标签: json excel csv character-encoding turkish


【解决方案1】:

看起来您发现的函数 JSONToCSVConvertor 以特定的 ISO-8859-9(或 Latin 5)字符集导出 csv。为了让 Excel 正确导入,您不应该通过双击打开它,而是使用:

  • 在 Windows 计算机上,单击 Excel 中的“文件 > 新建”
  • 点击“数据”标签
  • 单击“来自文本”选项。选择 CSV 文件

Excel 将显示“文本导入向导”。

  • 选择“分隔”单选按钮
  • 在“文件来源”字段中 - 选择 “28599 : 土耳其语 (ISO)”。 (您可能还想尝试 “1254 : 土耳其语 (Windows)”
  • 点击“下一步>”按钮
  • 选中“逗号”复选框,因为这是 JSONToCSVConvertor 函数创建的 csv 文件中使用的字符
  • 点击“完成”
  • 点击“确定”

如果您要更改函数以创建更常用的UTF-8,请替换此行

var uri = 'data:text/html;charset=ISO-8859-9,' + escape(CSV);

进入

var uri = 'data:text/csv;charset=utf-8,' + escape(CSV);

您可以使用相同的方式导入,然后为“文件来源”字段选择 “65001 : Unicode (UTF-8)”

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-29
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多