サイト構築する時に文字コード体系はどうするのか、意外と頭を悩ませるところだ。
例えばこのGooブログやYahoo、朝日新聞はEUCになっている。GoogleはUTF-8、読売新聞はShift-JISだ。
今開発中のサイトでもHTMLを記述する際の文字コードには何を使うのか悩んだが結局Shift-JISにした。今後はUTF-8で統一したほうが良いかなとも思ったのだが、昔ながらのWindowsMEを使っている担当者がいたりするので無難なShift-JISにしたのだ。
でも、MySQLではUTF-8を使っている。この辺りを考えるとやはりUTF-8で統一したほうが問題が起きにくいのかもしれない。
文字コードでShift-JISを使う場合には、PHPやODBC接続の際に、
mysql_query ("SET NAMES 'sjis'");
を実行してあげれば一応文字化けをせず(一部を除く)に使う事ができる。
データベースからデータを取得し文字列加工をする場合には次の2行を文字列を扱う命令の前に加える。
mb_language("Japanese");
mb_internal_encoding ("shift-jis");
更に日本語文字列を扱う場合には、mb_で始まる関数を使う。
例)$tempの中から●を見つけてその場所の値を返す。
$pos1 = mb_strpos($temp,"●");
例)$tempの3(最初が0のため)8文字を切り出す
$str1 = mb_substr($temp,2,8);
上の事がわかるまで随分時間を費やした。
思えば、Shift-JISの前には、JISコード、日立の汎用機で使ったKEISコードというのもあったな、EBCDICコードというのもあったし特殊なところでは写研の文字コード体系も扱った。各種のコード変換プログラムを作った事もあった。今後はUTF-8に一本化すれば文字化けの問題も減るのだろうが、まだまだ悩まされそうな状況は続くだろう。
例えばこのGooブログやYahoo、朝日新聞はEUCになっている。GoogleはUTF-8、読売新聞はShift-JISだ。
今開発中のサイトでもHTMLを記述する際の文字コードには何を使うのか悩んだが結局Shift-JISにした。今後はUTF-8で統一したほうが良いかなとも思ったのだが、昔ながらのWindowsMEを使っている担当者がいたりするので無難なShift-JISにしたのだ。
でも、MySQLではUTF-8を使っている。この辺りを考えるとやはりUTF-8で統一したほうが問題が起きにくいのかもしれない。
文字コードでShift-JISを使う場合には、PHPやODBC接続の際に、
mysql_query ("SET NAMES 'sjis'");
を実行してあげれば一応文字化けをせず(一部を除く)に使う事ができる。
データベースからデータを取得し文字列加工をする場合には次の2行を文字列を扱う命令の前に加える。
mb_language("Japanese");
mb_internal_encoding ("shift-jis");
更に日本語文字列を扱う場合には、mb_で始まる関数を使う。
例)$tempの中から●を見つけてその場所の値を返す。
$pos1 = mb_strpos($temp,"●");
例)$tempの3(最初が0のため)8文字を切り出す
$str1 = mb_substr($temp,2,8);
上の事がわかるまで随分時間を費やした。
思えば、Shift-JISの前には、JISコード、日立の汎用機で使ったKEISコードというのもあったな、EBCDICコードというのもあったし特殊なところでは写研の文字コード体系も扱った。各種のコード変換プログラムを作った事もあった。今後はUTF-8に一本化すれば文字化けの問題も減るのだろうが、まだまだ悩まされそうな状況は続くだろう。