我发现当我保存这个扭曲的字符串("à " ußerungen üben")作为ANSI文本文件,然后用Firefox打开它并在Firefox菜单中选择"Unicode",它将其转换为可读的德语格式("Äußerungen
同样的事情也可以用我的文本编辑器(notepad++)。
是否有任何方法来实现这与JavaScript?例如:
var output = makeReadable("Äußerungen üben");
不幸的是,我从外部来源得到这种扭曲的字符串,它不关心UTF-8,并提供所有数据作为ANSI。
PS:保存为UTF-8格式文件,在META标签中设置字符集为UTF-8无效。
编辑:
现在我通过列出所有常见的UTF8/ANSI扭曲(超过1300)来解决它,并编写了一个函数,用正确的字符替换所有错误的字符组合。
我认为你的问题中的"扭曲字符串"的编码通过在这里发布而得到了进一步的修改。但是在Google上快速搜索"javascript convert from utf-8",结果显示这篇博文是最热门的:http://ecmanaut.blogspot.com/2006/07/encoding-decoding-utf8-in-javascript.html
所以在JavaScript中编码和解码UTF-8真的很容易。这对我来说很有用:
var original = "Äußerungen üben";
var utf8 = unescape(encodeURIComponent(original));
//return utf8; // something like "ÃuÃerungen üben"
var output = decodeURIComponent(escape(utf8));
return output;