PowerShellで数値から変換して、ASCII文字の127文字全てを出力するサンプルコードを紹介します。
ASCIIコードとは
1963年に制定された、アメリカ合衆国における情報通信用の文字コードです。
アルファベットや数字、記号などを文字コード化したもので、情報をやりとりするために使用されます。
英語圏を想定した、以下の4つの文字で構成されています。
- 《英語で使われるアルファベット》の大文字と小文字
- 英文でよく使われる約物など
- 0から9までの数字(アラビア数字)
- 制御文字
そして他の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進数) | 文字 |
|---|---|
| 0 | NUL(null文字) |
| 1 | SOH(ヘッダ開始) |
| 2 | STX(テキスト開始) |
| 3 | ETX(テキスト終了) |
| 4 | EOT(転送終了) |
| 5 | ENQ(照会) |
| 6 | ACK(受信確認) |
| 7 | BEL(警告) |
| 8 | BS(後退) |
| 9 | HT(水平タブ) |
| 10 | LF(改行) |
| 11 | VT(垂直タブ) |
| 12 | FF(改頁) |
| 13 | CR(復帰) |
| 14 | SO(シフトアウト) |
| 15 | SI(シフトイン) |
| 16 | DLE(データリンクエスケー プ) |
| 17 | DC1(装置制御1) |
| 18 | DC2(装置制御2) |
| 19 | DC3(装置制御3) |
| 20 | DC4(装置制御4) |
| 21 | NAK(受信失敗) |
| 22 | SYN(同期) |
| 23 | ETB(転送ブロック終了) |
| 24 | CAN(キャンセル) |
| 25 | EM(メディア終了) |
| 26 | SUB(置換) |
| 27 | ESC(エスケープ) |
| 28 | FS(フォーム区切り) |
| 29 | GS(グループ区切り) |
| 30 | RS(レコード区切り) |
| 31 | US(ユニット区切り) |
| 32 | SPC(空白文字) |
| 33 | ! |
| 34 | “ |
| 35 | # |
| 36 | $ |
| 37 | % |
| 38 | & |
| 39 | ‘ |
| 40 | ( |
| 41 | ) |
| 42 | * |
| 43 | + |
| 44 | , |
| 45 | – |
| 46 | . |
| 47 | / |
| 48 | 0 |
| 49 | 1 |
| 50 | 2 |
| 51 | 3 |
| 52 | 4 |
| 53 | 5 |
| 54 | 6 |
| 55 | 7 |
| 56 | 8 |
| 57 | 9 |
| 58 | : |
| 59 | ; |
| 60 | < |
| 61 | = |
| 62 | > |
| 63 | ? |
| 64 | @ |
| 65 | A |
| 66 | B |
| 67 | C |
| 68 | D |
| 69 | E |
| 70 | F |
| 71 | G |
| 72 | H |
| 73 | I |
| 74 | J |
| 75 | K |
| 76 | L |
| 77 | M |
| 78 | N |
| 79 | O |
| 80 | P |
| 81 | Q |
| 82 | R |
| 83 | S |
| 84 | T |
| 85 | U |
| 86 | V |
| 87 | W |
| 88 | X |
| 89 | Y |
| 90 | Z |
| 91 | [ |
| 92 | \ |
| 93 | ] |
| 94 | ^ |
| 95 | _ |
| 96 | ` |
| 97 | a |
| 98 | b |
| 99 | c |
| 100 | d |
| 101 | e |
| 102 | f |
| 103 | g |
| 104 | h |
| 105 | i |
| 106 | j |
| 107 | k |
| 108 | l |
| 109 | m |
| 110 | n |
| 111 | o |
| 112 | p |
| 113 | q |
| 114 | r |
| 115 | s |
| 116 | t |
| 117 | u |
| 118 | v |
| 119 | w |
| 120 | x |
| 121 | y |
| 122 | z |
| 123 | { |
| 124 | | |
| 125 | } |
| 126 | ~ |
| 127 | DEL(削除) |
環境
下記の環境で作成・実行しております。
| No. | 環境 | バージョン |
|---|---|---|
| 1 | OS | Windows11 |
| 2 | PowerShell | 5.1 |
以上です。