Javascript:以 unicode-escape 格式从 url 读取
Javascript: read from url in unicode-escape format
我正在使用 node-fetch
从 URL 读取数据。 return 结果是完美的,只是它与我的首选结果不同。
对于某些特殊字符,如 í
或此 ř
,我希望它的格式如下:u00ed
和 u0159
。
是否可以在不查找字符并手动替换的情况下实现类似的功能?
这是我的代码:
const fetch = require("node-fetch");
var result = {}
fetch(url)
.then(res => res.json())
.then(json => result = json);
我的 json 结果:
{"title":"Adopce zvířat"}
代替上面的结果,我想要:
{"title":"Adopce zv\u00ed\u0159at"}
这一定很奇怪,但出于某种原因我想要那样。
GitHub Gist User josephrocca found here on GitHub Gist 中的这个函数用 unicode 转义字符串替换所有 non-ASCII
个字符。
function escapeUnicode(str) {
return [...str].map(c => /^[\x00-\x7F]$/.test(c) ? c : c.split("").map(a => "\u" + a.charCodeAt().toString(16).padStart(4, "0")).join("")).join("");
}
This function matches all non-ASCII characters after splitting the
string in a "unicode-safe" way (using `[...str]`). It then splits each
unicode character up into its code-points, and gets the escape code
for each, and then joins all all the ASCII characters and Unicode
escapes into one string.
[...]
Based on discussion in this thread: https://gist.github.com/mathiasbynens/1243213
您可以使用 jsesc
包:
const jsesc = require('jsesc');
jsesc('Ich ♥ Bücher'); // → 'Ich \u2665 B\xFCcher'
jsesc('foo bar'); // → 'foo \uD834\uDF06 bar'
From the Documentation on Github
我正在使用 node-fetch
从 URL 读取数据。 return 结果是完美的,只是它与我的首选结果不同。
对于某些特殊字符,如 í
或此 ř
,我希望它的格式如下:u00ed
和 u0159
。
是否可以在不查找字符并手动替换的情况下实现类似的功能?
这是我的代码:
const fetch = require("node-fetch");
var result = {}
fetch(url)
.then(res => res.json())
.then(json => result = json);
我的 json 结果:
{"title":"Adopce zvířat"}
代替上面的结果,我想要:
{"title":"Adopce zv\u00ed\u0159at"}
这一定很奇怪,但出于某种原因我想要那样。
GitHub Gist User josephrocca found here on GitHub Gist 中的这个函数用 unicode 转义字符串替换所有 non-ASCII
个字符。
function escapeUnicode(str) {
return [...str].map(c => /^[\x00-\x7F]$/.test(c) ? c : c.split("").map(a => "\u" + a.charCodeAt().toString(16).padStart(4, "0")).join("")).join("");
}
This function matches all non-ASCII characters after splitting the string in a "unicode-safe" way (using `[...str]`). It then splits each unicode character up into its code-points, and gets the escape code for each, and then joins all all the ASCII characters and Unicode escapes into one string.
[...]
Based on discussion in this thread: https://gist.github.com/mathiasbynens/1243213
您可以使用 jsesc
包:
const jsesc = require('jsesc'); jsesc('Ich ♥ Bücher'); // → 'Ich \u2665 B\xFCcher' jsesc('foo bar'); // → 'foo \uD834\uDF06 bar'
From the Documentation on Github