« 【PHPのとあるエラー】Warning: fopen(): URL file-access is disabled in the server configuration in | トップページ | MacOSX+Web共有でPerl/CGIをプログラムする際に注意すべきこと »

2008/01/14

EmEditorと補助漢字



EmEditorのバージョンが7になりました。2006年11月に「秀丸エディタとEUC補助漢字(「繋がる」と「繫がる」)」という記事を書きましたが、EmEditorは当時、補助漢字には対応していませんでした。実際、2007年3月には、EmEditorの公式フォーラムで以下のような質問がなされていました(なお、質問した人は私ではありません)。

●EmEditor テキスト エディタ - フォーラム「EUC-JPは実際にはサポートされていない?」
http://jp.emeditor.com/modules/newbb/viewtopic.php?topic_id=195&forum=2&post_id=746#forumpost746

この中で「次の EmEditor のメジャー バージョンでは、ほぼ確実に、このような新しいエンコードにも対応していきたいと思います。」と開発者の方が語られていたので、バージョン7になって実際どうなっているだろうかと思い、試してみましたが(バージョン7.00でテスト。)、未対応のようでした。(ちょっと意地が悪いですね。補助漢字に対応するのは本当に大変なことだと思います。私のWEBアプリも、まだ対応できていません(汗)。)

データベース(文字コード:EUC-JP)のバックアップなどを取った際に、バックアップファイルをEmEditorで再編集後、データベースに戻す処理をする場合は、注意が必要な場合もあるでしょう。なぜなら、Firefoxで登録された「鷗外」や「繫ぐ」を補助漢字に対応していないテキストエディタで開き、それを再保存すると、文字化けした結果である「乗ス」「恕リぐ」が確定化してしまい、バックアップファイルからの復元前は「IEでは文字化けするけれどFirefoxでは文字化けしない」状態だったのが、「IEでは文字化け。Firefoxでも文字化け」という事態に悪化してしまうこともありうるからです。

もちろん、このような事態を避けるためにも、Firefox(やSafari)で送信された3バイトのEUCデータは、データベースに登録する前に数値文字参照化してしまい、IEでもFirefoxでも文字化けしない状態にしておくのが理想的だと思います。そうすれば、補助漢字に対応していないテキストエディタを経由しても文字化けしないようになりますが、なかなかそこまで手が回らないのが実情でしょう。

話を、テキストエディタの比較の話に戻します。では、補助漢字の対応だけを見るのであれば、今のところ、秀丸に軍配が上がりそうかというとそうでもなさそうです。私が誤解している部分があるかもしれませんが、両テキストエディタの機能を比較してみますと、

0x8Fで始まる3バイトEUCのデータがある場合

秀丸エディタEmEditor
読み込み時

(文字化けせずに表示)
×

(文字化して表示。
保存時に文字化けが確定)
保存時
×

(EUCのファイルで「鷗外」「©」などと新規入力したHTMLファイルの場合、その文字がFirefoxなど一部のブラウザでしか意図通りに表示できないことを認識できないまま、ユーザーが思わず使ってしまう危険性があります。)
デフォルトの設定の場合

(自動的に、数字文字参照・文字実体参照に置き換えて保存)


好き好きはあるかもしれませんが、私は、EmEditorの保存時の設定は優れていると思います。EmEditorの場合、このデフォルトの設定が気に入らない場合は、【ツール】→【現在の設定のプロパティ】→【ファイル】タブ→【保存時】ボタン→【Unicode文字をHTML/XMLの文字参照として保存】及び【名前による実体参照を使用する】のチェックを外せば良いでしょう。

●EmEditor テキスト エディタ - FAQ: 「HTML、または XML ファイルを保存する際に、EmEditor はUnicode 文字を文字参照 "Numerical Character References" (NCRs - &#xx; など) として、エンコードすることはできますか?」
http://jp.emeditor.com/modules/xoopsfaq/index.php?cat_id=6#q63




秀丸エディタにも同様の設定がないだろうかと探してみたのですが、見つかりませんでした。こちらの公式サポートフォーラムのスレッドは私が知りたいことをダイレクトに聞かれた内容ではないのですが、この内容からすると、私が捜し求めている機能はなさそうです。そこで、このスレッドで「秀丸担当 さん」が回答しておられるマクロを改良して、私が期待するマクロを考えてみました。なお、私は秀丸マクロは他人のマクロを少しだけ改良(改悪?)して自分だけ使うというレベルですので、以下のコードは全くの無保証です。念のため。

このマクロは、基本的に、ファイルの保存前に実行することを想定しています。

このマクロを実行すると、Unicode文字の部分は数値文字参照にするのか下駄文字(〓)にするのか、それとも無視するのか、選択できます。なお、選択肢の表示のさせ方がよく分からなくて、質問部分まで選択肢の一つになってしまっているのでご注意ください。また、「©」の場合は数値文字参照ではなく文字実体参照にしたいとかいうのがあると思いますが、そこまでするのが面倒なのでやっていません。EUC補助漢字(及び、補助漢字にも入らない漢字など)は全て、数値文字参照になってしまいます。また、マクロの仕様なのか、私の無知なのか分かりませんが、「変換しました」というメッセージが表示された後に、実際は変換が行われます。(適当に、改良して、まともなものに仕上げてください。)

このマクロがあれば、EUC-JPのページでハングル文字を表示させたい場合に、数値文字参照に変換するのが結構面倒という場合にも使えます。ただし、この場合は、ファイルの保存前に実行しないといけません。そうでないと、保存時に、秀丸エディタが文字コード変換できない旨のメッセージを出し、「はい」を選択すると「?」に置き換えてしまいます。

ファイルの保存時に必ず、このマクロを実行してから保存されるようにするように秀丸エディタをカスタマイズできればいいのですが、そこまでの力量もなく、秀丸エディタの仕様が変更にならないかなと思う今日この頃ですが、設定可能項目が増えると、かえって使いづらくなることはよくある話なので、やっぱり、すべての人の要望は受け入れられないですよね、秀丸エディタ開発者様。



1日150円で韓国語が身につく『スピードラーニング韓国語』

|

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/67411/17691288

この記事へのトラックバック一覧です: EmEditorと補助漢字:

コメント

コメントを書く