0

以下の行は、ファイルascii.txtに何も書き込みません。16進数の「88」に相当するASCIIを書き込もうとしています。ただし、ファイルには何も書き込まれず、変数asciiにも何も割り当てられません。

Dim ascii = ChrW(Convert.ToInt32("88", 16))
My.Computer.FileSystem.WriteAllText("e:\ascii.txt", ascii, True)

ExcelまたはOpenOfficeでは、次の式を使用してASCIIに相当するものを取得できます。コードの何が問題になっていますか?

=CHAR(HEX2DEC("88"))
4

1 に答える 1

4

ChrWASCIIを認識せず、Unicodeコードポイントのみを認識します。

U + 0088は制御文字であり、印刷できません(つまり、通常は表示可能な文字に対応していません)。したがって、ファイルが空に見えるのは当然のことです。

さらに、ASCIIを使用してもChrW、文字0x88はASCIIではなく、範囲外です。以前の標準のWindows文字セットであるコードページ1252について話していた場合は、次のコードを使用して文字コードの文字列表現を取得できます。

Dim bytes = New Byte() { &H88 }
Dim text = System.Text.Encoding.GetEncoding(1252).GetString(bytes)
于 2012-05-27T07:54:01.413 に答える