使用JavaScript (UTF-8)将隐式字符串转换为可读字符串

Convert cryptic string to a readable one with JavaScript (UTF-8)

本文关键字:字符串 转换 JavaScript UTF-8 使用      更新时间:2023-09-26

我发现当我保存这个扭曲的字符串("à " ußerungen ü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)来解决它,并编写了一个函数,用正确的字符替换所有错误的字符组合。

我认为你的问题中的"扭曲字符串"的编码通过在这里发布而得到了进一步的修改。但是在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;