我发现当我将这个扭曲的字符串(“ÔuÃererungenüben“)保存为ANSI文本文件时,然后用Firefox打开它并在Firefox菜单中选择”Unicode“,它把它变成可读的德语格式(“Äußerungenüben”)。
使用我的文本编辑器(Notepad ++)可以实现同样的目的。
有没有办法用JavaScript实现这一目标?例如。以下会很好:
var output = makeReadable("Äußerungen üben");
不幸的是,我从一个不关心UTF-8的外部源获得这种扭曲的字符串,并将所有数据都提供为ANSI。
PS:将文件保存为UTF-8并在META标记中将字符集设置为UTF-8无效。
修改
现在我通过列出所有常见的UTF8 / ANSI失真(超过1300)来解决它,并编写了一个用正确的字符替换所有错误字符组合的函数。它工作正常:-)。
答案 0 :(得分:0)
我认为你的问题中“扭曲字符串”的编码通过在此处发布而得到进一步发展。但谷歌快速搜索“jf 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;