【问题标题】:Character Encoding Issue - Characters Being Replaced with Random Characters after Saving in Textarea字符编码问题 - 在 Textarea 中保存后字符被随机字符替换
【发布时间】:2020-06-08 15:22:19
【问题描述】:

我正在与一家第三方公司合作,我正在尝试/希望在向他们提出字符编码问题之前确定其原因。

这家公司有一个自定义拖放编辑器,用于在其平台上设计网站。在编辑器中,他们有一个 Raw HTML 小部件,我也可以将其拖入并添加我自己的内容。问题是,当我使用检查器工具从某人的旧网站复制 HTML 并将其粘贴到他们的这个小部件中时,所有撇号和双引号都被替换为“乱码”。当我尝试将内容粘贴到记事本、notepad++、sublime 编辑器中,然后将其粘贴到他们的Raw HTML 编辑器中时,我也遇到了同样的问题。

以下是问题的记录和一些示例: https://streamable.com/phwn2

以下是被替换的已知字符以及它们被替换的内容

  • ' 变成 â™

  • “变成了 âœ

  • ” 变成了 ❄

  • +;变成(一个空格)

  • Å 变成 Ã…

  • " 保持为 "

  • ' 保留为 '

是否有人看到这些字符的模式或知道这些字符被替换的原因是什么?

【问题讨论】:

    标签: unicode character-encoding special-characters non-ascii-characters htmlspecialchars


    【解决方案1】:

    该网站可能使用 UTF-8 编码,而公司的编辑器可能正在使用类似于 Windows-1252 的编码。在您的第一个示例中,正确的单引号具有 UTF-8 编码 e2 80 99。当使用 Windows-1252 的程序读取每个字节时,您会得到“带抑扬符的小拉丁字母 a”(e2),[未定义] 80 和“商标”(99)。我还没有检查其他转换。如果这是问题所在,那么您可以先使用 iconv 将复制的字符转换为目标编码,然后再粘贴到公司的编辑器中。

    【讨论】:

    • 你是正确的。这些更改在测试从 utf-8 到 windows-125(0,2,6,7,8 等)的转换时完全相同。string-functions.com/encodedecode.aspx 非常感谢!你不知道你刚刚救了我多少头痛=D
    • 如果他们不能改变编码怎么办?我假设是在他们的数据库或编辑器中设置的?我想他们唯一能做的就是对非 windows-1252 字符进行正则表达式查询/搜索和替换?
    • @BlakeBell。如果他们无法更改应用程序中的编码,他们就无能为力。 “UTF-8 字节”将继续被读取为“Windows-1252”字节。 characters 的正则表达式搜索不起作用。唯一的解决方法是在粘贴到应用程序之前将 UTF-8 文本转换为 Windows-1252 文本。查看kunststube.net/encoding
    猜你喜欢
    • 2017-05-20
    • 1970-01-01
    • 2017-06-03
    • 1970-01-01
    • 2021-06-12
    • 2017-04-01
    • 2017-10-22
    • 2020-12-15
    • 2017-08-06
    相关资源
    最近更新 更多