2

有没有办法在 vbscript 中解析 utf 代码?我想做的是将字符串中的所有代码(如“\u00f1”)替换为其对应的字符。

4

1 回答 1

1

Unescape函数执行*,仅要求 Unicode 字符以%u***xxxx*格式编码。因此,您需要\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也将%***xx*字符串中的代码替换为相应的 ASCII 字符。因此,如果%***xx*是字符串中的合法子字符串,则必须编写自己的替换函数。这样的功能可以执行以下操作:

  • 搜索**\u***xxxx*输入字符串中出现的类似子字符串,
  • 从每个匹配项中提取字符代码,并将其从十六进制转换为十进制形式,
  • 调用ChrW将十进制字符代码转换为相应的 Unicode 字符,
  • **\u***xxxx*用对应的字符替换每个匹配项。
于 2010-02-15T19:22:43.843 回答