- eclipseの[設定→一般→エディター]から「テキスト・ファイル・エンコード」を「EUC-JP」に設定
- eclipse上で「~」(全角チルダ)を含むテキストファイルを保存
- 「~」の箇所だけが文字化け
という現象に困っています。
EUC-JPにおける「~」は16進数で「A1C1」だけど、実状は「8FA2B7」に置き換わってしまうようで、例えばeclipse上で編集し、かつEUC-JPで保存されたhtmlファイル内の「100 ~ 199以内」というのが「100 潤オ 199以内」に変わってしまうのです。さらに普段使っているFirefoxが「潤オ」を「~」として画面表示してくれていたため、社内のIEユーザから「文字化けしてるよ」と指摘されるまで気がつかなかったという始末。フンガー。
ちなみにShift-JIS(MS932)、UTF-8、UTF-16のエンコード設定では上記不具合は発生しなさそうなので、どうやらEUC-JPでのみ起こる現象らしい。外部エディタで「潤オ」を「~」に全置換して上書き保存で事なきを得たけれど、今後厳重注意しなければイカンと思った。
※外部エディタで全置換後、同じファイルをeclipse上で修正→上書き保存した場合は文字化けせずに表示されます。正しく保存されている場合は「~」の表示が「"ジャギーのある"~」になるので、そこらへんで区別つけるしかないみたいです。
ex.1) eclipseでEUC-JPにて保存した「~」の表示例(文字化けして表示される)
ex.2) 外部エディタでEUC-JPにて保存した「"ジャギーのある"~」の表示例(正常に表示される)
どなたか根本的な解決策プリーズ。
それは有名な文字コードの化けですね。
Shift_JIS(CP932)でも起こりますよ。
Javaのプログラム(含むeclipse)では基本的にUTF-8縛りにしておいた方がよさげ。
Javaのプログラムを使ってることが原因だったとは…。一つ賢くなりましたですハイ。
今後Eclipseでサイト構築する際はUTF-8縛りにしちゃったほうがよさそうですが、今動いてるサイトを一気にエンコード変換したらどんなことが起こるか見当もつかないので、とてもじゃないけどできません…。外部モジュール(DBやらnamazuやら)とのカラミも考えると、テストの作業コストが膨大になるのは火を見るより明らかですし。
コンテンツ部分だけはEmEditorで書くようにクセをつけるしかないかなあ。
OSがWindowsだったらxyzzyが文字コード鬼なのでお勧めします。
ただ使い始めるまでにちょっと設定が必要ですけど。
Emacs使いならば断然。
結論: む り ぽ
実はviの最低限の機能しか知らないLinux初心者なんで、emacs使えないんですよトホホ。とはいえ、xyzzy(じじー?)ちょろっと使ってみました。なんなんですかこのエンコード選択肢の豊富さは。聞いたことないのまでもっさり入ってて、確かに文字コード鬼ですな。emacsを使いこなせる人だったら依存度が高くなるのがわかります。
Eclipseのエディタはあまり好みじゃないんですが、CVSクライアント機能が素晴らしすぎるから使い始めただけなのです。じゃあPeggy Proでもどうだといわれそうですが、EmEditorで慣れ親しんだタブエディタ機能からはもう離れることができません…。