Firefox 52:Javascript parseFloat无法使用UTF-16字符串

时间:2017-03-10 09:51:33

标签: javascript firefox utf-8 parsefloat

我一直试图在Firefox v52中读取UTF-16文件的内容:

$.ajax({
    type: "GET",
    url: "downloads/dg_mare_piwik_social.csv",
    dataType: "text",
    success: function(data) {

        // Split the lines

        var lines = data.split('\n');
        for (var i = 1, len = lines.length; i < len; ++i) {
            var items = lines[i].split(',');
            console.log(items[0], Number.parseFloat(items[1]));
        }
});

问题是在控制台中我从NaN获得parseFloat(items[1])。 这种情况只发生在Firefox中,所有其他浏览器都会使用该数字。

我怎样才能让它发挥作用?如何从UTF-16字符串中获取数字?

1 个答案:

答案 0 :(得分:1)

对T.J.的称赞克劳德帮助我找出了问题的根源。将其更改为此已解决了我的问题:

$.ajax({
    type: "GET",
    url: "downloads/dg_mare_piwik_social.csv",
    dataType: "text",
    beforeSend: function (data) { data.overrideMimeType('text/plain; charset=UTF-16'); },
    success: function(data) {

        // Split the lines

        var lines = data.split('\n');
        for (var i = 1, len = lines.length; i < len; ++i) {
            var items = lines[i].split(',');
            console.log(items[0], Number.parseFloat(items[1]));
        }
});

在beforesend添加overrideMimeType。