基礎用語 キャラクターコード(文字コード)
キャラクターコード表
「A」等の文字には、それぞれ対応する16進数のキャラクターコード(文字コード)があり、プログラムはこのキャラクターコードを元に文字列を処理します(「A」ならば41h)。キャラクターコードを指定する形式には、「Windows
ANSI」ほか「Unicode」、「UTF-8」、「Shift-JIS」、「JIS」、「ASCII」など複数の種類があります。なお、基礎用語の理解という面では、キャラクターコードの「Windows
ANSI」は、ほぼ「Shift-JIS」と同じという認識で問題ありません。また、「ASCII」は最も基本的な、半角の英数文字と記号および画面に表示されない画面制御文字を指定するもので、「Windows
ANSI」など他のキャラクターコードは、「ASCII」での指定内容をベースにして多言語対応のための拡張を行ったものといえます。 以下のキャラクターコード表は、ASCIIのキャラクターコード表をベースに、JISコードの半角カタカナ分追加と、5Chの半角バックスラッシュ「 \ 」から「\」への変更に加え、Shift-JISの全角文字に関する情報を追加したものです。 なお、EXEファイルやDLLファイルなどWindows用の実行可能ファイルでは、実行のために使用する文字列がWindows ANSIだけではなくUNICODEを用いて格納されることもあります。特に実行可能ファイルのリソースには必ずUNICODEが用いられます。正確な表記としては「Unicode」ですが、プログラム解析ツール等では「UNICODE」としているケースも多いので、当ヘルプでは「UNICODE」と表記しています。ちなみに、当ソフトウェア同梱の式入力演算・進数変換ツール(UMEC.exe)では、入力した文字列をWindows ANSIとUNICODEの両キャラクターコードに変換した結果であるバイナリデータを、16進数の文字列として表示することが可能です。そして、この機能は両キャラクターコードの比較考察にも役立ちます。 また、Windows用の実行可能ファイルでは、プログラムが使用するAPI関数名の接尾辞が「A(ANSI)」か「W(Wide:UNICODE)」で、参照文字列のキャラクターコードがWindows ANSIあるいはUNICODEであることを判断可能です。ただし、プログラムが使用する文字列には、新しいキャラクターコードであるUTF-8が使用されることもあります。正確には、Windowsで標準的に使用され一般にUNICODEといわれているキャラクターコードは、「UTF-16」という名称でUNICODEという形式の一種に分類されるものであり、同様にUTF-8もUNICODEの一種です。さらに、一般的ではない「UTF-32」というキャラクターコードもあります。 当ソフトウェアでは、プロセスメモリ上に格納されているWindows ANSI/UNICODE/UTF-8の文字列を一括取得する、「指定メモリエリアから文字列を抽出」機能を実装しています。加えて、当ソフトウェア同梱の汎用ファイルアナライザ(AoZoraSiroNeko.exe)には、任意のバイナリファイルからキャラクターコードを指定して文字列を抽出する機能があります。 下表の灰色部は画面非表示の画面制御文字で、黄色部は2バイトで表示する全角文字の1バイト目に使用可能なエリアを指します(2バイト目は40h以降の黒色以外のエリアが使用可能)。また、プログラム上では値00hが文字列終端を意味します(UNICODEなら0000h)。
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||