【问题标题】:Escape with Unicode Code Points similar to PHP in Javascript使用类似于 Javascript 中的 PHP 的 Unicode 代码点进行转义
【发布时间】:2014-09-30 02:59:59
【问题描述】:

当使用 PHP 生成 JSON 时,它使用 \u0123 代码点表示法对更高的字符进行编码。

(我知道这不是必需的,但出于未命名的原因,我想要这样做。)

我正在尝试在 JavaScript 中实现相同的目标。我四处寻找,一无所获。 encodeUri 函数对我没有任何作用(尽管许多人建议这样做)。

任何有用的提示?我希望我不必使用一些大型的外部库,而是使用内置的东西或几行漂亮的代码——这不可能这么难,可以吗...?!

我有一个输入字符串,格式为:

var stringVar = 'Hällö Würld.';

我想要的转换会给我类似的东西:

var resultStringVar = 'H\u00e4ll\u00f6 W\u00fcrld.';

【问题讨论】:

  • 我添加了一个我期望实现的示例。它现在有一个明确的问题陈述。

标签: javascript unicode character-encoding


【解决方案1】:

我已经为 jsesc 创建了一个库。从它的自述文件中:

这是一个用于escaping JavaScript strings 的 JavaScript 库,同时生成最短的有效纯 ASCII 输出。 Here’s an online demo.

这可用于避免 mojibake 和其他编码问题,甚至在传递 JSON 格式的数据(可能包含 U+2028 LINE SEPARATOR、U+2029 PARAGRAPH SEPARATOR 或 lone surrogates)时避免 avoid errors分别到 JavaScript 解析器或 UTF-8 编码器。

对于您的具体示例,请按如下方式使用:

var stringVar = 'Hällö Würld.';
var resultStringVar = jsesc(stringVar, { 'json': true, 'wrap': false });

【讨论】:

  • 有趣的是,在进行研究时,我只能找到您的网站 :D 我发现它们信息量很大,但我认为我不需要整个库 - 您在内部使用什么功能?还是发生了太多事情?
  • @ThE__-_BliZZarD 我的答案中有一个指向源代码的链接。检查一下——它应该相当简单。主循环在这里循环遍历字符串并根据需要转义每个字符:github.com/mathiasbynens/jsesc/blob/…
猜你喜欢
  • 2011-06-10
  • 2020-02-19
  • 2016-03-27
  • 2016-07-21
  • 2014-10-16
  • 1970-01-01
  • 1970-01-01
  • 2012-11-24
相关资源
最近更新 更多