在 nashorn 中将 html 解码后的字符串转换为人类可读的字符串
Convert html decoded string to human readable string in nashorn
我有一些这样的字符串(编码为 utf-8):
توسعه
.
我想将它们转换为:
توسعه
我如何在 java脚本中做到这一点?
该解决方案需要与 nashorn 兼容,因为我 运行 [中的虚拟引擎中的代码=37=]。
注意: None 这些 HTML Entity Decode, Unescape HTML entities in Javascript? 对于我的问题是可以接受的,因为它们在 nashorn 中不起作用。
P.S:我已经搜索了可能的解决方案,许多人建议使用 decodeURIComponent(escape(window.atob(yourString)))
(略有不同),这显然不起作用,因为我在 vscode(java脚本).
不清楚 nashorn 是否支持 DOM 方法,但通常你可以做到
var x = 'توسعه'
var y = document.createElement("div")
y.innerHTML = x;
console.log(y.textContent)
我在问题中提到的字符串可以分解为由;
分隔的更小的部分。每个部分都是 &#
和对应字符 (Ê) 的十六进制数(例如 x62A
)的组合。
以下代码将通过解析输入 str
并找到相应的字符来完成这项工作。结果是字符的串联。
human_readable = function (str) {
hex_code = str.match(/([^&#]+[\w][^;])|(\s)/g)
s = ''
for (j = 0; j < hex_code.length; j++) {
if (hex_code[j] != ' ') {
int_code = parseInt("0" + hex_code[j])
char = String.fromCharCode(int_code)
} else {
char = ' '
}
s = s + char
}
return s
}
console.log(human_readable('توسعه'))
P.S:我假设如果 str 包含空格,它将只是 ' '
,而不是相应的 unicode。
我有一些这样的字符串(编码为 utf-8):
توسعه
.
我想将它们转换为:
توسعه
我如何在 java脚本中做到这一点?
该解决方案需要与 nashorn 兼容,因为我 运行 [中的虚拟引擎中的代码=37=]。
注意: None 这些 HTML Entity Decode, Unescape HTML entities in Javascript? 对于我的问题是可以接受的,因为它们在 nashorn 中不起作用。
P.S:我已经搜索了可能的解决方案,许多人建议使用 decodeURIComponent(escape(window.atob(yourString)))
(略有不同),这显然不起作用,因为我在 vscode(java脚本).
不清楚 nashorn 是否支持 DOM 方法,但通常你可以做到
var x = 'توسعه'
var y = document.createElement("div")
y.innerHTML = x;
console.log(y.textContent)
我在问题中提到的字符串可以分解为由;
分隔的更小的部分。每个部分都是 &#
和对应字符 (Ê) 的十六进制数(例如 x62A
)的组合。
以下代码将通过解析输入 str
并找到相应的字符来完成这项工作。结果是字符的串联。
human_readable = function (str) {
hex_code = str.match(/([^&#]+[\w][^;])|(\s)/g)
s = ''
for (j = 0; j < hex_code.length; j++) {
if (hex_code[j] != ' ') {
int_code = parseInt("0" + hex_code[j])
char = String.fromCharCode(int_code)
} else {
char = ' '
}
s = s + char
}
return s
}
console.log(human_readable('توسعه'))
P.S:我假设如果 str 包含空格,它将只是 ' '
,而不是相应的 unicode。