このエントリーをはてなブックマークに追加


文字から文字コード・文字コードから文字を返却する関数・Asc・Chr

文字から文字コード、文字コードから文字を返却する関数の使用方法について以下に記します。


関連記事

文字から文字コード・Asc関数

Asc関数以外にもAscB関数, AscW関数も試して見ます。
以下、Asc, AscB, AscWの3関数を使うサンプルコードを作成し実行してみました。

Asc関数・VBScriptサンプルコード

ファイル名:asc.vbs

WScript.Echo "Asc(""A"") -> " & Asc("A")
WScript.Echo "Asc(""A"") -> " & Hex(Asc("A")) & "H"

WScript.Echo "AscB(""A"") -> " & AscB("A")
 WScript.Echo "AscB(""A"") -> " & Hex(AscB("A")) & "H"

WScript.Echo "AscW(""A"") -> " & AscW("A")
WScript.Echo "AscW(""A"") -> " & Hex(AscW("A")) & "H"

WScript.Echo "Asc(""あ"") -> " & Asc("あ")
WScript.Echo "Asc(""あ"") -> " & Hex(Asc("あ")) & "H"

WScript.Echo "AscB(""あ"") -> " & AscB("あ")
WScript.Echo "AscB(""あ"") -> " & Hex(AscB("あ")) & "H"

 WScript.Echo "AscW(""あ"") -> " & AscW("あ")
WScript.Echo "AscW(""あ"") -> " & Hex(AscW("あ")) & "H"

Asc関数・VBScriptサンプルコード動作結果

 1: C:\wsh>cscript /nologo asc.vbs
 2: Asc("A") -> 65
 3: Asc("A") -> 41H
 4: AscB("A") -> 65
 5: AscB("A") -> 41H
 6: AscW("A") -> 65
 7: AscW("A") -> 41H
 8: Asc("あ") -> -32096
 9: Asc("あ") -> 82A0H
10: AscB("あ") -> 66
11: AscB("あ") -> 42H
12: AscW("あ") -> 12354
13: AscW("あ") -> 3042H

上記はAsc, AscB, AscWの3関数を実行した出力です。
2行目から7行目までは、すべて半角のAを使用して実行した結果です。
半角Aに関してはAsc, AscB, AscWの3関数とも同じ結果となっています。
8行目から13行目までは、全角のあを使用して実行した結果です。
9行目を見ると16進に変換すると82A0と出力されているのでSJISなのが確認できます。
13行目の3042を見るとUTF-16(Unicode)のあであることが確認できます。
11行目の42に関しては13行目の3042の42が返却されているようです。

文字コードから文字・Chr関数

Chr関数以外にもChrB関数, ChrW関数も試して見ます。
以下、Chr, ChrB, ChrWの3関数を使うサンプルコードを作成し実行してみました。

Chr関数・VBScriptサンプルコード

ファイル名:chr.vbs

1: WScript.Echo "Chr(&H41) -> " & Chr(&H41)
2: WScript.Echo "ChrB(&H41) -> " & ChrB(&H41)
3: WScript.Echo "ChrW(&H41) -> " & ChrW(&H41)
4: 
5: WScript.Echo "Chr(&H82A0) -> " & Chr(&H82A0)
6: ' WScript.Echo "ChrB(&H82A0) -> " & ChrB(&H82A0) - Error
7: WScript.Echo "ChrW(&H82A0) -> " & ChrW(&H82A0)
8: WScript.Echo "ChrW(&H3042) -> " & ChrW(&H3042)

6行目はエラーとなるのでコメントにしています。

Chr関数・VBScriptサンプルコード動作結果

1: C:\wsh>cscript /nologo chr.vbs
2: Chr(&H41) -> A
3: ChrB(&H41) -> A
4: ChrW(&H41) -> A
5: Chr(&H82A0) -> あ
6: ChrW(&H82A0) -> 芠
7: ChrW(&H3042) -> あ

上記の結果を確認すると、半角Aに関してはChr, ChrB, ChrWとも同様の動作となっています。
ChrWに関しては、SJISコードを指定すると文字化けが発生しました。
UTF-16(Unicode)を指定すると意図した「あ」の文字が表示されました。

 


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-05-10 (日) 10:43:43