
文字化けがモヤモヤした件:Unicodeめ!!とか機種依存文字とかの話。
会社でこちらの件でモヤモヤして最終的に解決できたのだけどなんだか腑に落ちないので自宅に帰って文字化けの検証をしてみました。勤めている会社はサイトコピー防止の為なのか、euc-jpコードで動いています。なのでWEBシステムのファイルはEUCなのです。ここで問題が発生したわけですけどajaxで処理をPHP側に投げ、返却値が返ってくる時に文字化けするわけです。JSはUTF-8なのでUTF-8に文字を変換し返さないと文字化けするですね。
表面上文字は機種依存文字以外は難なく表示されます。そこでその戻ってきた文字をコピペしてWindowsのテキストファイルなどにペースト(貼り付ける)すると文字化けを起こす文字があります。
どんな文字が文字化けが発生するかというと、文字が消える、文字化け表示されるという問題がおきるのです。
何故・・・起きるのかPHPでエンコードするときの問題に変換にミスっていると思っていたが、そうではなかった。
Windowsのエディタは基本的にSJIS-Winの文字コードなら文字化けをしない。要するにJSで送られてきた値はUTF-8を介している。それをWINDOWSにコピペするとどうもJIS問題が根強く残っていて文字により文字化けが発生する。
※GETやPOSTで渡されたデータで処理や判断を行う場合。
ブラウザを介して送受信をすることには何も問題ならないが、例えばウィンドウズのテキストファイルの文字をコピーしてブラウザの入力場所に貼り付けると、その文字データは文字化けの対象になる場合がある。
Macはどうさ?って事だけど、何もしてあげることはないということ。
こういう問題が起きるのはOSの文字コードがEUC-JPやShift-JISなどになっている時に起こる現象なのでUTF-8は会社が駄目という方針でない限り、UTF-8にファイルやキャラセットなどを統一したほうが良いです。そろそろ会社のシステムもUTF-8に変える時期なのかなぁとか思いますが、何社もEUCで作っていてすべてのファイルを修正しないとなる・・・。結構な量なので大変だな。
やはりズルズルとEUC-JPをまだ当分の間、使用する事になりそうですね。