2

私は、UTF-8のすべての文字が正しくレンダリングされているかどうかを確認するためのHTMLページを作成するための簡単なスクリプトを書いています。

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を超える文字を印刷しようとするまではうまく機能します。その場合、次のエラーが発生します。無効なプロシージャ呼び出しまたは引数:'Chr'(800A0005)

UTF-8文字セット内のすべての文字を印刷する方法を誰かに説明してもらえますか?

このテストは、生の文字がどのようにレンダリングされるかを確認するように設計されています。したがって、ファイルにファイルを含める&#256;と、実際のラテン大文字のAをマクロン(Ā)で印刷する必要があるため、正しくありません。

4

1 に答える 1

4

ChrW()バリアントが必要です。

ChrWUnicode文字を使用する32ビットプラットフォーム用に提供されています。その引数はUnicode(ワイド)文字コードであるため、ANSIからUnicodeへの変換を回避できます。

于 2012-10-16T14:44:19.573 に答える