文字コードで発狂寸前

最近文字コードで手こずってましたが、これ以上振り回されるのはごめんだ!
ということで、半日がかりでブログ全ページUTF-8に統一しました。
大体ググれば世の中解決すると思ってる店主ですが、今回の件についてはなかなかピンポイントな解説がないので、文字コードでここまで詰まってる人間は結構レアな部類に入るのでしょう。

そもそも文字コードって何?

『文字や記号をコンピュータで扱うために、文字や記号一つ一つに割り当てられた固有の数字のこと。
欧米などで使われる英数字の文字コードは1バイトで表現されるが、これでは256文字しか表現できず、日本語の漢字などは収録できないため、日本や韓国、中国などではそれぞれ独自に2バイト(最大65536文字)のコード体系を定め、それぞれ自国内で使用している。
1バイトの文字コードとしてはASCIIが世界標準となっているが、一部の大型コンピュータではIBM社のEBCDICを使うものもある。
日本語の文字コードは、JIS(日本工業規格)で標準化されたJISコードの他、主にUNIXなどで使われるEUC、WindowsやMac OSなどで使われるシフトJISの3種類が利用されている。』

よく分からんけど、SHIFT-JIS は日本語専用だから韓国人や中国人は使えねーぞ!ということのようです。
SHIFT-JIS はガラケーなんかでは標準だったし韓国人や中国人に用はないから別にいーじゃんと思って、サイトは今までSHIFT-JIS標準で作成してたんだけど、PHP等のプログラムを自作するようになってから状況が変わった。

世界標準で配布しているwordpressやXAMMP、プログラムのサンプルソースなどはSHIFT-JIS用のファイルなんてのは皆無で一回一回文字コードを指定しなおさなくてはならない。
ならファイルをグローバルコードのUTF-8に変えちゃえ〜!となったわけですが、これが大失敗。。
一つのサイト内に複数の文字コードが混在する状況になったことで、後々問題が頻発することとなった。

個々のファイルをブラウザーで表示するだけなら、ファイルの文字コードを指定してやれば何ら問題ないのですが、プログラムを使う=ファイル間でデータの受け渡しをする。ってことなので文字化けする。
ファイルのフッターやサイドメニューをパーツにしてincludeで組み込むときもそれぞれ対応したファイルを用意しないと文字化けする。

先日ブログコメントがエラーになると言われてハッとした。
spam対策でテキストマッチ判定してた文字が化けてエラーページに飛ばされてた・・
受取側のファイルで渡された文字列を指定して何とか復旧したのだが、テキストファイル書き込み処理でとどめを刺された。
SHIFT-JIS指定のファイルで入力された内容をフォームでUTF-8に変換して出力するとPOST先のUTF-8ファイルでは問題なく表示される。
ただ、その内容を新着書き込みで全ページに表示させようとしてテキストファイルに保存しようとするとSHIFT-JIS形式の文字列をUTF-8に変換した状態の内容を書き込もうとするから文字化けする。

もう、ここらへんで発狂しそうになって一時間ほどフリーズした。
ページ数を確認したら50ページ弱・・
「ファイル書き換え用のプログラムを組む方が早いのか?手作業で書き換えた方が早いのか?」
結局、冒頭に書いたように半日がかりでブログ全ページUTF-8に統一しました。

そもそも私が間違ってるのは明らかなのですが、この問題どうにかならないのでしょうか?
なにかスパッと解決できる方法をご存知の方がおられましたらご教授いただきたいです。

もう遅いけど・・


関連記事
履歴を残さずサイト閲覧 シークレットモードだからってストーカーになるなよ!!
タイピング練習無料サイト集 打鍵サイト集めてみた。タイピング記録サイトで日々精進!
アクセスとサイトのイメージ アメブロとか平均アクセスとかアナリティクスとか黒いブーツとか・・
ブログタイトルの重要性
文字エンコーディングを変換する
お取り寄せフォームつくった
緩めのスパム投稿対策プログラム
PHP・サンプルソースエロエロ
PHP・ブログ自動投稿プログラム
PHP・新着コメント自動表示プログラム
必殺!ペタ地獄
サイト診断してみた
検索ワードを察知すべし

SEO・プログラムに関する記事一覧



最終更新日 2014/1/26
麺飯茶家浪花
香川県高松市林町1511-1