unicode関連で、もっと良い方法ありますかNo.07184
yamashita さん 13/02/22 16:36
 
秀丸担当様

お世話になっております、山下です。

(1)のような問題に対し、(2)のように対策しました。
とりあえずこれで手元は解決しているのですが、もっと適切な方法はあるのでしょう
か。

(1)問題
EUC で開いている秀丸において、秀丸内にある unicode 特有文字を削除、置換したい。
例えば、unicode 0x2014 を、"─" に置換したい。

(2)解決法
replaceall unichar(0x2014), "─";
などとする。
この方法は、対策したい unicode 文字が複数ある場合は、同様のマクロを個別に記
述しなければならず、あんまり格好良くありません。

また削除したい場合、
replaceall unichar(0x2014), "";
とすれば可能と思われますが、もっと適切な書き方はあるでしょうか?

[ ]
RE:07184 unicode関連で、もっと良い方法No.07185
秀丸担当 さん 13/02/22 16:54
 

Unicodeの文字列を書く場合、unichar(0x2014)としてもできますが、
"\u2014"と書く方法もあります。

他にはマクロファイルをUnicode(UTF-16)で保存すると、Unicodeの文字をマクロ
ファイルに直接記述できます。

検索文字列が複数ある場合は、正規表現を使うといいと思います。

例:
replaceall"[\u2011\u2012\u2013\u2014]","─",regular;

置換後の文字列が1つの場合はこういった感じでいけますが、置換後の文字列が
複数ある場合は、やはり面倒ですが複数回する必要があると思います。

[ ]
RE:07185 unicode関連で、もっと良い方法No.07186
yamashita さん 13/02/22 19:23
 
回答、ありがとうございました。

マクロを unicode で書くのは、思いつきませんでしたw

ちなみに、ネットから取得した情報を処理しようとすると、たまに unicode 固有文
字が出てきます。

今までは
replace 0x2014, "";
とかやって、「だめだなー」と諦めてました。

たまになので適当に誤魔化してたんですが、きっちり処理できるなら、助かります。


提案ですがマクロヘルプに以下のような項目を追加してはどうでしょうか。

項目名:unicode 特有文字の処理

キーワード:Unicode, unichar, replace, 文字コード

ヘルプ本文ここから:

Unicode(UTF-16) の文字に対して replace などの処理を行いたい時は、マクロファ
イルを Unicode(UTF-16) で記述すれば、マクロに直接記述できます。

また、Shift-JIS や EUC などでマクロファイルを記述している場合でも、

replaceall unichar(0x2014), "─";

replaceall "\u2014", "─";

みたいにすれば処理できます。

ヘルプ本文ここまで:

[ ]
RE:07186 unicode関連で、もっと良い方法No.07189
秀丸担当 さん 13/02/25 09:11
 

ヘルプについてのご提案ありがとうございます。
"\u2014"のような書き方についてはマクロヘルプの[式について]→[文字列]のと
ころに書かれていますが、キーワードの検索では見つけにくいと思います。
キーワードで検索しやすくしたり、説明を追記するなどさせていただきます。

[ ]