我正在尝试使用这个插件jquery.csvToTable来显示从csv到网页的数据,cvs文件有编码ansi和日文文本,但是网页有编码utf8,而js不能用ansi,怎么可能转换或者如果存在另一个方法数据$.get(csvFile, function(data) {
数据到utf8,抱歉我的英语不好,非常感谢!
答案 0 :(得分:3)
当你在JavaScript中处理字符串时,你正在处理UTF-16。由浏览器来确保传递给JavaScript层的任何数据都已正确转换。
在这种情况下,因为你正在使用$.get
,这意味着ajax层必须知道它正在处理什么。您需要确保您的服务器在包含CSV文件的HTTP响应中返回正确的字符集信息,以便浏览器知道字符数据的格式。一旦您这样做,浏览器应该进行任何必要的转换从原版到UTF-16 for JavaScript。
具体来说,如果您的CSV文件位于字符集Windows-1252中(有时人们称之为“ANSI”,尽管它不正确),这将是您的服务器应该返回的Content-Type
标头文件:
Content-Type: text/csv; charset=windows-1252
...但如果您的内容是日语,我认为它不会出现在Windows-1252中,这是一个(非常有限的)拉丁字符集。如果您使用的是Windows,则更有可能是Code Page 932,即:
Content-Type: text/csv; charset=Windows-31J
...或者如果您使用的是* nix,可能是EUC-JP:
Content-Type: text/csv; charset=EUC-JP
您可以在this W3C document中了解有关字符集的更多信息。 (This article作者Joel Spolsky也很有帮助。)有关JavaScript字符串的更多信息可以在the specification中找到(但基本上,JavaScript字符串中的每个“字符”都是UTF-16字,这意味着需要两个单词的字符在字符串中显示为两个“字符” - 对于某些文本来说并不理想,特别是东亚语言,但是当它被定义时,RAM仍然是宝贵的......)。
答案 1 :(得分:-1)
我希望这对你有用↓
答案 2 :(得分:-1)
我使用这个功能:
function encode_utf8(s) {
return unescape(encodeURIComponent(s));
}
function decode_utf8(s) {
return decodeURIComponent(escape(s));
}
摘自:http://ecmanaut.blogspot.com.ar/2006/07/encoding-decoding-utf8-in-javascript.html