先日のぺそぎん,一覧表表示で警告が出てしまいました.いわいる文字化けです.
「暴」の文字がうまく表示できないのです.「暴1」「暴2」「暴3」と1〜3の数字が後ろに付いたときだけ表示できていません.「暴4」は大丈夫なんです.
さらにおかしなことに,表で見えるところではなく,タグ内のALTとTITLE.文字コードで,「暴1」が01,「暴2」が02,「暴3」が03.1は16進で31,同じく2は32,3は33ですから,「暴」のコードと数字の上位4ビットが消滅しちゃってる.
シフトJISを使用していますから,下位8ビットが5Cの場合おかしなことになることがあるのは判っています.必ずなるのではなく,なったりならなかったり.後ろに半角の円記号「¥」を補えば正しく表示する・・・はずなのですが,表示できないことも.よく判りません.
先日のぺそぎんの「暴1」「暴2」「暴3」では,「暴¥1」「暴¥2」「暴¥3」としたら,ちゃんと「暴1」「暴2」「暴3」と表示し,アラームは消えました.
このブログでは,共通設定ファイルやcssはシフトJIS,ブログ処理の主CGIはUTF-8,データベース(MySQL)とのやり取りはUTF-8,MySQL内部はUTF-8,ブログCGIからクライアントに吐き出すときはシフトJISとなっています.記事本体はシフトJISで作成し,ブログCGIが吸い込むときにUTF-8に変換しています.
ぺそぎんは,共通設定ファイルにデータがあり,ALTやTITLEは,この共通設定ファイルのデータ元にブログCGIが作成しています.
ぺそぎんの表,文字は正しく表示され,タグ内のALTとTITLEがおかしいのは,このためでしょう.文字は原稿から,ALTとTITLEは共通設定からですので,シフトJIS←→UTF-8の変換工程が異なります.でも「暴4」は問題ないのは説明が付かず・・・・
シフトJIS←→UTF-8の変換が,あちこちで何度も繰り返されるのが「よくわからない」原因みたいです.
つまるところ,文字コードがいろいろあるのが諸悪の根源.
全部シフトJISで統一したかったのですが,一部UTF-8が入り込んでる理由は,MySQL.シフトJISでMySQLを使う方法が良く分からないのです.じゃ全部UTF-8にしちゃえば...って話もありますが,制作順としてブログは最後の方でして,組み替えるのが面倒だった・・・ また,UFT-8はデータが大きくなるので,通信的にはちょっとね.昨今常時接続の光全盛ではありますが,モバイル環境も意識しないと・・・ね.
今日は,なんだかややこしい話で申し訳ないです.しかも海ねたじゃなくて済みませんです.