charset阅读文件的问题。如何解决它

时间:2015-10-30 17:27:59

标签: javascript html utf-8

输入以读取文件Jade

input#upload.(type='file', accept="text/xml, .csv")

并进入js:

 var file = document.getElementById('upload').files[0];
var reader = new FileReader();
reader.onloadend = function(e){
     var file = e.target.result;
};
reader.readAsBinaryString(file);

我得到了一句话:

  

“邮件;名称;ТÐμÑÑ”

文件中最后一个元素中的ТеÑÑ是俄语单词。

如何修复charset?

1 个答案:

答案 0 :(得分:0)

症状很明显:你(无意中)将UTF-8(通过你的标签判断)内容拼接成一些被呈现为其他内容的东西(不是-UTF-8),因此随后出现了mojibake。

确保内容经过的每次传递都是UTF-8清理,或者完全按字节保存原始内容。这包括适当地设置Content-type标头(可能:text/html; charset=utf-8)。

这个确切的问题是为什么建议将UTF-8用于所有的事情。设置数据库以使用UTF-8,设置您的网络服务器以提供UTF-8,将源代码设置为UTF-8,将编辑器设置为默认以UTF-8保存,设置HTTP标头和meta标签来宣传UTF-8,不接受任何非UTF-8或在可行的情况下对其进行转码。任何不是UTF-8的东西都只是在寻找麻烦。

为什么要对UTF-8进行标准化?因为它的低7bit范围看起来像ASCII,它可以在与其他不太了解的破碎/遗留物的互操作性方面与整个世界产生差异。