MySqlからCSVに吐き出す処理をしています。
テーブルの文字こーどはデフォでlatin1です。
hoge1 => 名前
hoge2 => なまえ
selectでデータに格納し文字コードを再度みてみたら?何故か下記に・・・
mb_detect_encoding($hoge1) => utf-8
mb_detect_encoding($hoge2) => ASCII
mb_convert_encoding($hoge1, 'SJIS', 'UTF-8');
mb_convert_encoding($hoge1, 'SJIS', 'ASCII');
上記をしても、SJISには変更できず文字化けします・・・
どなたかご教授ください。
よろしくです。
PHP: mb_detect_encoding - Manual
http://jp.php.net/manual/ja/function.mb-detect-encoding.php
PHP: mb_detect_order - Manual
http://jp.php.net/manual/ja/function.mb-detect-order.php
判定順序を変えてみるテスト
mb_detect_encoding($hoge1, 'sjis')
あとは php.ini のデフォルトがSJISかどうか
HTMLのメタタグでSJIS以外を設定していないかどうかといった具合に進む
今はここまで
9.3.6. 接続のキャラクタセットおよび照合順序
http://dev.mysql.com/doc/refman/4.1/ja/charset-connection.html
どの段階で文字化けが発生しているのかの切り分けが必要
まずは SET NAMES sjis を発行してからSELECTを発行するテスト実施
SET NAMES程度で直らなければphpのバージョンや php.ini の設定なども表にだす必要がある