PowerShellで数値から変換して、ASCII文字の127文字全てを出力するサンプルコード

PowerShell
記事内に広告が含まれています。

PowerShellで数値から変換して、ASCII文字の127文字全てを出力するサンプルコードを紹介します。

ASCIIコードとは

1963年に制定された、アメリカ合衆国における情報通信用の文字コードです。

アルファベットや数字、記号などを文字コード化したもので、情報をやりとりするために使用されます。

英語圏を想定した、以下の4つの文字で構成されています。

ASCIIコードで表現される文字
  1. 《英語で使われるアルファベット》の大文字と小文字
  2. 英文でよく使われる約物など
  3. 0から9までの数字(アラビア数字)
  4. 制御文字

そして他のUNICODEやSJISはASCIIコードを拡張した文字コードです(ASCIIベース)。

なので、ASCIIと重複する数値をUNICODEに変換してもASCIIと同じ符号化ができます

ここが今回のソースコードのポイントになります。

ソースコード

以下のコマンドとps1ファイルを準備しておきます。

コマンド

powershell -ExecutionPolicy RemoteSigned -File "outASCII.ps1"

outASCII.ps1

$str = ""
for($i=0; $i -lt 127; $i++){

    $c = [System.Convert]::ToChar($i)
    $str = $str + $c.ToString() + " "

}
Write-Host $str

pause

解説

上記のコードでは上限127まで数値をループして、ASCII文字コードの0~127までを全てターミナルに出力します。

[System.Convert]::ToChar()は数値をUNICODEに変換する関数です。

数値127までをASCIIに変換する場合は、こちらの関数で可能です。

 ※1~127の数字はASCIIでもUNICODEでも同じ結果になります。(文字コードの仕様です)

テスト実行

実行手順

Windows PowerShellのターミナルからoutASCII.ps1を実行するコマンドを打ちます。

実行結果

以下の通り、ターミナルにNULから~DEL(制御文字)の127文字のASCIIコードが出力されました。

ただし制御文字はモニタやプリンタなどの機器を制御するためのコードのため、ターミナルに表示されません。

参考情報

ASCIIコード表

以下は参考情報のASCIIコード表です。

実行結果との比較に役立ててください。

数値(10進数)文字
0NUL(null文字)
1SOH(ヘッダ開始)
2STX(テキスト開始)
3ETX(テキスト終了)
4EOT(転送終了)
5ENQ(照会)
6ACK(受信確認)
7BEL(警告)
8BS(後退)
9HT(水平タブ)
10LF(改行)
11VT(垂直タブ)
12FF(改頁)
13CR(復帰)
14SO(シフトアウト)
15SI(シフトイン)
16DLE(データリンクエスケー プ)
17DC1(装置制御1)
18DC2(装置制御2)
19DC3(装置制御3)
20DC4(装置制御4)
21NAK(受信失敗)
22SYN(同期)
23ETB(転送ブロック終了)
24CAN(キャンセル)
25EM(メディア終了)
26SUB(置換)
27ESC(エスケープ)
28FS(フォーム区切り)
29GS(グループ区切り)
30RS(レコード区切り)
31US(ユニット区切り)
32SPC(空白文字)
33!
34
35#
36$
37%
38&
39
40(
41)
42*
43+
44,
45
46.
47/
480
491
502
513
524
535
546
557
568
579
58:
59;
60<
61=
62>
63?
64@
65A
66B
67C
68D
69E
70F
71G
72H
73I
74J
75K
76L
77M
78N
79O
80P
81Q
82R
83S
84T
85U
86V
87W
88X
89Y
90Z
91[
92\
93]
94^
95_
96`
97a
98b
99c
100d
101e
102f
103g
104h
105i
106j
107k
108l
109m
110n
111o
112p
113q
114r
115s
116t
117u
118v
119w
120x
121y
122z
123{
124|
125}
126~
127DEL(削除)

環境

下記の環境で作成・実行しております。

No.環境バージョン
1OSWindows11
2PowerShell5.1
環境一覧

以上です。