last updated:2023/12/27

←前へ 次へ→
機能別Q&A 質問番号順Q&A


[HMM0072A]

●2バイト文字の判断方法

Q.
カーソル位置にある文字が、1バイト文字か2バイト文字かを判断するにはどうしたらいいでしょうか?

A.

秀丸エディタの内部キーワード「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"を返します。

←前へ 次へ→
機能別Q&A 質問番号順Q&A