#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)



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS