Javascript 将 windows-1252 编码转换为 UTF-8

标签 javascript encoding utf-8 windows-1252

如何转换以下字符串:

var string = "Bouchard+P%E8re+et+Fils"

使用 javascript 转换成 UTF-8,这样 %E8 就会变成 %C3%A8?

原因是这个 Angular 色似乎被 decodeURIComponent 绊倒了

您可以通过将字符串放入 http://meyerweb.com/eric/tools/dencoder/ 来测试它并看到控制台错误 Uncaught URIError: URI malformed

我正在专门寻找可以解码整个 html 文档的东西,它声称是 windows-1252 编码的,我认为这个 %E8 字符是来自,转换为 UTF-8。

谢谢!

最佳答案

首先创建 Windows-1252 的 map 。您可以使用您选择的搜索引擎找到对编码的引用。

为了这个示例,我将在您的示例数据中包含 Angular 色。

然后找到所有百分号后跟两个十六进制字符,将它们转换为数字,并使用映射将它们转换(以获取原始数据),然后使用 encodeURIComponent 再次转换它们(以获取编码数据)。

var string = "Bouchard+P%E8re+et+Fils"

var w2512chars = [];
w2512chars[232] = "è"

var percent_encoded = /(%[a-fA-F0-9]{2})/g;

function filter(match, group) {
  var number = parseInt(group.substr(1), 16);
  var character = w2512chars[number];
  return encodeURIComponent(character);
}

string = string.replace(percent_encoded, filter);
alert(string);

关于Javascript 将 windows-1252 编码转换为 UTF-8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32175125/

相关文章:

javascript - 使用多个分隔符拆分字符串

java - 将 DataInput 的字符串编码为 "modified UTF-8"

jquery - 使用MVC3的HTML编码和解码

python-3.x - 如何在 MacOS 的 Sublime Text 3 中更改首选编码

java - 使用 InputStreamReader 两次

javascript - 基于对象数组形成组件

javascript - 如何通过过渡更改 div 背景?

javascript - 如何使用 Firefox iMacros 知道文件是否已存在

audio - 调用 finishWritingWithCompletionHandler 时 AVAssetWriter 失败

php - SQLSTATE[42000] : Syntax error or access violation: 1064 default character set utf8 collate utf8_unicode_ci' at line 1