文字コードの値について(Ver9.43対応版)
目次−
コマンド−
検索系コマンド−
正規表現−
文字コードの値について
●大文字/小文字の区別
大文字/小文字の区別をOFFにして検索する場合、内部的に事前に小文字に変換してから検索をしています。
そのため、
\xhh等による文字コード指定の場合は、大文字/小文字の区別を無視した検索がうまくいかない場合があります。
具体的には、\x41は、大文字のAですが、これを大文字/小文字の区別をOFFにして検索することはできません。
\xhh等による文字コード指定で、半角英字を指定する場合は、大文字/小文字の区別をONにしてください。
[\uXXXX]、[\u{XXXXX}]、[\UXXXXXXXX]等の
Unicodeによる指定でも同様です。
●エンコーディング依存性
「あ」はShift-JISの場合は0x82A0ですが、
\xhhで表す場合は\x82\xA0と書くことができます。
キャラクタクラスの[あ-お]は、Shift-JISの場合は[\x82\xA0-\x82\xA8]と同じです。
ただし歴史的な経緯から、開いているファイルのエンコーディングによって常にShift-JISで表されるとは限りません。
例えば、エンコードの種類が欧文で、編集中に日本語が一時的に入っている場合は表現できません。
簡体字中国語は、Shift-JISではない違う値になります。
Unicode(UTF-16)は、\xhh\xhhを2つ並べてUnicodeのコードポイントにはならず、Shift-JISと同じ解釈になります。
Unicode(UTF-8)は、\xhh\xhh\xhh等の3つなど並べても、UTF-8のバイト列はならず、Shift-JISと同じ解釈になります。
多くの場合はUnicode(UTF-16)やUnicode(UTF-8)はShift-JIS扱いとなることから、多くの場面でShift-JIS前提として扱って問題が出にくいですが、厳密ではないです。
コードの値をそのまま使う場合は、[\uXXXX]などのUnicodeを使う必要があります。