【问题标题】:How to convert this text to correct HTML characters using Javascript如何使用 Javascript 将此文本转换为正确的 HTML 字符
【发布时间】:2015-07-03 05:01:08
【问题描述】:

如何使用 Javascript 将此文本转换为正确的 HTML 字符:

'PingAsyncTask - 令牌 v\ufffdlido'

放入你的控制台:

console.log('PingAsyncTask - 令牌 v\ufffdlido');

我已经尝试了所有常用功能:

  1. https://gist.github.com/chrisveness/bcb00eb717e6382c5608
  2. http://monsur.hossa.in/2012/07/20/utf-8-in-javascript.html
  3. http://jsfromhell.com/geral/utf-8

谁能帮帮我?

【问题讨论】:

标签: javascript html encoding utf-8 converter


【解决方案1】:

如果您的文档已经是 UTF-8,则不需要做任何特别的事情。该字符串已在 JavaScript 中正确编码,因此当您将其写入文档时,它会正确显示。你可以在这个小提琴中看到它:https://jsfiddle.net/baar4ew8/

附:代码中的字符 (\ufffd) 是 U+FFFD,即 Unicode 替换字符。大多数字体将其呈现为内部带有问号的黑色菱形,或者只是一个空框。下面是 Stack Overflow 的渲染方式:

如果您在输出中看到这一点,则您的字符串正在正确呈现。

如果您认为应该看到其他字符,那么您的问题不在于 HTML 或 JavaScript,而在于您的数据源,无论它可能是什么。当程序将文本从非 Unicode 编码转换为 Unicode 编码(如 UTF-8)时,Unicode 中不存在的字符将替换为 U+FFFD (�)——因此是“替换字符”。如果您期望 Unicode 中确实存在某些字符,但您得到的是 U+FFFD,那么将文本转换为 UTF-8 的程序可能不知道它最初的编码是什么,因此对其进行了转换不正确。例如,如果您将编码为 X 的文本存储在编码为 Y 的数据库表中,而没有先将其转换为编码 Y。

【讨论】:

    猜你喜欢
    • 2020-05-15
    • 2015-07-11
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 2015-12-03
    • 2015-03-07
    • 2012-06-07
    • 1970-01-01
    相关资源
    最近更新 更多