|
仕事の関連でユニコード独自の文字が実体参照(?)(「&#nnnnn;」
という形式)となっているファイルを受け取ったのですが、この「&#
nnnnn;」を文字に直す必要があります。
そこで、秀丸Ver5以降では、「insert "\u0000";」でユニコードの
文字が挿入できるそうですので、下のようなマクロを作ってみたので
すが、16進数がそのまま数字で挿入できるだけでどうもうまく文字に
なりません。
アドバイスを頂けたらと思い、投稿いたしました。よろしくお願い
いたします。(秀丸Ver5.07、Windows2000SP4です)
#x = x;
#y = y;
#n = 0;
gofiletop;
searchdown2 "&#[0-9][0-9][0-9][0-9][0-9];", regular;
while( result ) {
#tx = seltopx; #ty = seltopy;
#ex = selendx; #ey = selendy;
$sgml = gettext(#tx, #ty, #ex, #ey);
escape;
#uni = val( midstr($sgml,2,5) );
$unihex = hex(#uni);
beginsel;
moveto #ex, #ey;
insert "\u" + $unihex;
#n = #n + 1;
finddown2;
}
moveto #x, #y;
message str(#n) + "個置換しました。";
|
|