2009年9月14日月曜日

phpファイルをの文字コードを全てEUCに変更

はまった内容
フォトコントローラーを作ったが、IEでリストから出力できなかった。
その原因は文字コードがUTF-8であることだったので、
php、mysql入出力を全てEUC-jpで行うこととした。
しかし、my.cnfにujis(EUC-JP)の設定をしているにも関わらず、文字化けを起こした。

解決
文字コードがutf-8の際、作ったデータベースを使用していたため。
euc-jpに変更した後作ったデータベースでは、まともに動いた。
※ データベースの文字コードを変更する方法もあると思う。
MySQLでデータベースごとの文字コードを調べるコマンド(文字化け) - Knowledge Database IT
$ mysql mysql>USE {database_name}; mysql>SHOW VARIABLES LIKE '%character%';


以下、EUC-JPに変更するため行った作業
1、/etc/my.confの設定
default-character-set=ujis
2、/etc/php.iniの設定
php.iniの文字コードの設定 - bnote
PHPのソースをEUC-JPで保存し、ブラウザへEUC-JPで出力する設定
オプション 値 意味
output_buffering Off 出力バッファリングを指定します
default_charset EUC-JP デフォルトの文字コードを指定します
extension php_mbstring.dll マルチバイト文字列を有効にします。
mbstring.language Japanese デフォルトを日本語に設定します。
mbstring.internal_encoding EUC-JP 内部文字エンコーディングをEUC-JPに設定します。
mbstring.http_input auto HTTP入力文字エンコーディング変換をautoに設定します。
mbstring.http_output EUC-JP HTTP出力文字エンコーディング変換をEUC-JPに設定します。
mbstring.encoding_translation On 内部文字エンコーディングへの変換を有効にします。
mbstring.detect_order auto 文字コード検出をautoに設定します。
mbstring.substitute_character none 無効な文字を出力しない。

0 件のコメント:

コメントを投稿