【问题标题】:Javascript convert windows-1252 encoding to UTF-8Javascript 将 windows-1252 编码转换为 UTF-8
【发布时间】:2015-08-24 05:43:53
【问题描述】:

如何转换下面的字符串:

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: javascript encoding utf-8 windows-1252


    【解决方案1】:

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

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

    然后找到所有后跟两个十六进制字符的百分号,将它们转换为数字,并使用映射将它们转换(获取原始数据),然后使用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);

    【讨论】:

    • 那行得通。另外,我了解到 E8 只是编写 232 的另一种方式。谢谢大家。
    猜你喜欢
    • 1970-01-01
    • 2014-05-06
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    • 2012-08-16
    • 1970-01-01
    • 2021-04-09
    • 2013-09-10
    相关资源
    最近更新 更多