【发布时间】:2022-01-14 15:02:04
【问题描述】:
我想将 \uA90F 形式的 JSON Unicode 转义序列转换为 &#xA90F&#59; 形式的 XML 字符引用。
下面脚本中的Replace 工作正常,但我不知道如何替换回原始字符串,因此:
Zo\u00EB C\u00E9cile Fran\u00E7oise
变成:
Zoë Cécile Françoise
Dim RegX, InputText, Pattern, ReplacedText
'Zoe Francoise Cecile
InputText = "Zo\u00E2 Fran\u00E7oise C\u00E9cile"
SearchPattern = "\\u[a-zA-Z0-9]{4}"
set RegX = New RegExp
RegX.Pattern = SearchPattern
RegX.Global = True
Set Matches = RegX.Execute(InputText)
For Each Match In Matches
s = Replace(Match, "\u", "&#x") & ";" '<-- ** This works fine **
MsgBox(s)
Next
【问题讨论】:
-
帮不上忙,因为我不知道 VBScript,但请注意,这种方法不适用于诸如表情符号之类的“星光”字符——XML 使用包含 unicode 代码的单个转义序列点值,例如
&#x1F600;而 JSON 编码 UTF-16 代理对的两个部分\uD83D\uDE00 -
请upvote/accept以下任何可以解决您问题的答案。
标签: json regex xml unicode vbscript