2

我正在编写一个简单的脚本来构建一个 HTML 页面,以检查 UTF-8 中的所有字符是否都正确呈现:

Dim oStream : Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.CharSet = "utf-8"

' Code writing out the top HTML snipped for brevity

Dim iChar
For iChar = 32 to 255
    oStream.WriteText iChar & " = " & Chr(iChar) & "<br/>" & VbCrLf
Next

' Code writing out the bottom HTML snipped for brevity

oStream.SaveToFile "page.html", 2
Set oStream = Nothing

这很好用,直到我尝试打印超过 255 个字符,在这种情况下我得到错误:Invalid procedure call or argument: 'Chr' (800A0005)

有人可以解释一下如何打印 UTF-8 字符集中的所有字符吗?

该测试旨在查看原始字符是如何呈现的 - 因此其中包含一个文件&#256;是不正确的,因为它需要使用宏 (Ā) 打印实际的拉丁大写字母 A。

4

1 回答 1

4

您想要ChrW()变体;

ChrW为使用 Unicode 字符的 32 位平台提供。它的参数是一个 Unicode(宽)字符代码,从而避免了从 ANSI 到 Unicode 的转换。

于 2012-10-16T14:44:19.573 回答