我一直面临使用basex html 解析器解析带有扩展 unicode 字符的 html 的问题。是否可以使解析器支持特殊字符?
代码:
let $htmlRaw := '<span class="eqn">𝞪 + 𝞫 = 𝞬</span>'
let $htmlParsed := html:parse($htmlRaw, map { 'encoding': 'utf-8'})
return (
'INPUT',
$htmlRaw,
'OUTPUT',
$htmlParsed
)
输出:
INPUT
<span class="eqn"> + = </span>
OUTPUT
<html>
<body>
<span class="eqn">?? + ?? = ??</span>
</body>
</html>
该错误似乎与output-encoding
basex 不支持的 tagsoup 库的参数有关。
例如:-
$ echo "<span class="eqn">𝞪 + 𝞫 = 𝞬</span>" | java -jar tagsoup-1.2.1.jar --html
<html><body><span class="eqn">�� + �� = ��</span>
</body></html>
$ echo "<span class="eqn">𝞪 + 𝞫 = 𝞬</span>" | java -jar tagsoup-1.2.1.jar --html --output-encoding=utf-16
<html><body><span class="eqn"> + = </span>
</body></html>