- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2020-05-10T10:43:18+09:00;2015-03-20T22:50:29+09:00","","")
#navi(../)
* 文字から文字コード・文字コードから文字を返却する関数・Asc・Chr [#b442ea9d]
文字から文字コード、文字コードから文字を返却する関数の使用方法について以下に記します。
#contents
#htmlinsertpcsp(win-top.html,win-sp.html)
* 関連記事 [#hd8f64d7]
-[[10進数を16進数に変換する・Hex>WSH/10進数を16進数に変換する・Hex]]
* 文字から文字コード・Asc関数 [#td149a61]
Asc関数以外にもAscB関数, AscW関数も試して見ます。~
以下、Asc, AscB, AscWの3関数を使うサンプルコードを作成し実行してみました。
** Asc関数・VBScriptサンプルコード [#sd195117]
#ref(asc.zip)
''ファイル名: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サンプルコード動作結果 [#n5d1d1c5]
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関数 [#k62921c6]
Chr関数以外にもChrB関数, ChrW関数も試して見ます。~
以下、Chr, ChrB, ChrWの3関数を使うサンプルコードを作成し実行してみました。
** Chr関数・VBScriptサンプルコード [#q3594fc6]
#ref(chr.zip)
''ファイル名: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サンプルコード動作結果 [#p72e760d]
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)を指定すると意図した「あ」の文字が表示されました。
#br
#htmlinsertpcsp(win-btm.html,win-sp.html)