[HMM0072A]
●2バイト文字の判断方法
- カーソル位置にある文字が、1バイト文字か2バイト文字かを判断するにはどうしたらいいでしょうか?
秀丸エディタの内部キーワード「code」を使い、ビット演算を使って2バイト文字かどうかを判断することで、可能です。
// サンプルマクロ(ここから) #Code = code; if( #Code == 0 ) { // フリーカーソルで改行以降 message "改行以降"; } else if( #Code == 0x09 ) { // タブ message "タブ"; } else if( #Code == 0x0d ) { // 改行 message "改行"; } else if( #Code == eof ) { // EOF message "EOF"; } else if( ( code & 0xff00 ) != 0 ) { // 2バイト文字 message "2バイト文字"; } else { message "1バイト文字"; } endmacro; // サンプルマクロ(ここまで)
文字列変数の中の文字列をバイト単位ではなく文字単位で扱いたい場合は、 [HMM0073A]●文字列をバイト単位ではなく文字単位で扱うを参照して下さい。
- [補足]
code
は基本的に、Shift_JISを返します。unicodeにあり、Shift_JISにない文字の場合は、code
は"0"を返します。