|
こんにちは。秀丸愛用者の「でるもんた・いいじま」と申します。
> マクロは、マクロファイルをUnicodeで書かなくても、
> Unicode独自の文字を"\uXXXX"の書き方で書くことができます。
> 例えばU+21E8の文字であれば、Shift-JISのマクロファイルで
> 以下のような感じで書きます。
> message "A\u21E8B";
2つほど補足します。
1. \u のあとには必ず4桁を書く必要があります。
なので、たとえば U+1F449 を使いたい場合に
message "A\u1F449B";
と書くのはダメです。これは「全角のA、U+1F44(ギリシャ文字οの上に記号2つが
ついたもの)、半角数字の9、全角のB」という意味になります。また、
message "A\u{1F449}B";
もダメです。
この場合、次のどれかの方法で書く必要があります。
message "A\U0001F449B"; // Ver8.52以降。\Uの後は必ず8桁
message "A\uD83D\uDC49B"; // サロゲートペアを使った表示。
message "A" + unichar(0x1F449) + "B";
ちなみに、message sprintf("A%cB", 0x1F449); なんて書くとエラーになります。
(秀丸のsprintfは現状、%cをサポートしていません。)
なお、サロゲートペアについては自動的に合体してくれます。
essage sprintf("U+D83D U+DC49 -> U+%04X", unicode("\uD83D\uDC49"));
2.当該文字が手元で表示できる環境であれば、特にどこかから文章をコピペしてくる
ようであれば、マクロ自体をUnicodeで書いてしまうという手もあります。公式にサ
ポートされているのはUTF-16LEのBOMつきと、UTF-8のBOMつきですが、もしかしたら
実はUTF-16BEやUTF-32系でも通ってしまうかもしれません(実験はしていません)。
なお、UTF-8でBOMなしのものはShift_JISと誤認されます(マクロ起動時に編集中の
ファイルがどの言語であれ、Shift_JIS固定です)。日本語以外の言語で書きたい場
合にEUC系やISO 8859系のコードでマクロを保存してしまうと化けますのでご注意く
ださい。
ではでは。
|
|