【发布时间】:2011-01-17 01:13:27
【问题描述】:
有没有办法在 vbscript 中解析 utf 代码?我想做的是将字符串中的所有代码(如“\u00f1”)替换为其对应的字符。
【问题讨论】:
有没有办法在 vbscript 中解析 utf 代码?我想做的是将字符串中的所有代码(如“\u00f1”)替换为其对应的字符。
【问题讨论】:
Unescape 函数可以做到这一点*,只是它要求将 Unicode 字符编码为 <strong>%u***xxxx*</strong> 格式。因此,您需要先将 \u***xxxx* 代码替换为它们的 **%u***xxxx* 等效代码。这是一个例子:
str = "\u0044\u006F \u0063\u0061\u0074\u0073 \u0065\u0061\u0074 \u0062\u0061\u0074\u0073\u003f"
Set re = New RegExp
re.Pattern = "\\(u[a-f\d]{4})"
re.IgnoreCase = True
re.Global = True
str2 = Unescape(re.Replace(str, "%$1"))
MsgBox str2
* 请注意,Unescape 还将字符串中的 <strong>%***xx*</strong> 代码替换为相应的 ASCII 字符。因此,如果%***xx* 是字符串中的合法子字符串,则必须编写自己的替换函数。这样的函数可以执行以下操作:
**\u***xxxx* 的子字符串,ChrW将十进制字符码转换为对应的Unicode字符,**\u***xxxx* 匹配替换为对应的字符。【讨论】:
re) 对 str 字符串执行替换操作。它将所有出现在 \ 前面的 u[a-f\d]{4} 模式(即 uxxxx)替换为前面带有 % 的相同文本。替换字符串中的$1 是这种重用模式的简写。