输入以读取文件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?
答案 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,它可以在与其他不太了解的破碎/遗留物的互操作性方面与整个世界产生差异。