マクロでの \uhhhhNo.03155
Iranoan さん 09/08/19 01:05
 
 秀丸担当さん今日は、Iranoan です。
 マクロの文字列で \uhhhh を使えば、Unicode の文字が指定できますが、末
尾のマクロの様にサロゲートペアの文字の場合、出来ません。unichar() は出
来ますが、これは仕様でしょうか?
 こちらの環境は、WindowsXP+IE8.0+秀丸 Ver.8.00b07 です。
//------------------------------------------------------------
insert unichar( 0x2A5F1 ) + unichar( 0x2A61A ) + "\n齟齬\n";
insert "\u2A5F1";//これは出来ない
message hex( unicode( unichar( 0x2A5F1 ) + unichar( 0x2A61A ) + "\n齟齬" ));

[ ]
RE:03155 マクロでの \uhhhhNo.03159
秀丸担当 さん 09/08/19 10:58
 

> マクロの文字列で \uhhhh を使えば、Unicode の文字が指定できますが、末
>尾のマクロの様にサロゲートペアの文字の場合、出来ません。unichar() は出

\uの後は4桁で固定で、仕様ということでお願いします。
もし5桁もできるようにしてしまうと、"\u2A5F1"は、"\u2A5F"と"1"との区別のし
ようが無くなってしまうと思います。

0x00010000 以上のUnicode文字は、サロゲートペアとして2つのUnicode文字で表
すことができます。
参考のスレッドには説明が書いてありますが、いったんUTF-16で保存してからバ
イナリモードで見たほうが早いかもしれません。

参考:
 turukame.3:02376| RE 02369 hilightファイルでUnicode
 http://www.maruo.co.jp/turukame/3/x02364_.html#2376

例:
  insert unichar( 0x2A5F1 );
  insert "\uD869\uDDF1";  //0x2A5F1と同じ
  insert unichar( 0x2A61A );
  insert "\uD869\uDE1A";  //0x2A61Aと同じ

[ ]
RE:03159 マクロでの \uhhhhNo.03162
Iranoan さん 09/08/19 15:09
 
 秀丸担当さん今日は、Iranoan です。
> \uの後は4桁で固定で、仕様ということでお願いします。
 解りました。

[ ]