プロが教えるわが家の防犯対策術!

PHPで「テスト」->「テスト」(UTF8)に変換することができる人はいらっしゃいますか?「テスト」はMySQLでテストが文字化けたものを正常な日本語としてMySQLに入れなおさないといけません。

どうしてもPHPのみでやらないといけなくてこういったやり方はできないので難儀しています。
http://www.miacis.co.jp/?p=160

$flag = mb_detect_encoding($str, "auto");
「テスト」を調べたらUTF8とでたので

$str = mb_convert_encoding($str, "UTF-8", "UTF-8");
で変換してもやはりダメで、

前に
mb_language("Japanese");を直前に記述して
$str = mb_convert_encoding($str, "UTF-8", "auto");
にしてもダメで

同じUTF8同士なので変換?というべきかわからないのですが、var_dump();で調べたとき「テスト」ではなく「テスト」として取得できるやり方またはコードヒントを教えてください。

A 回答 (2件)

PHPやMySQLには詳しくないのですが、


化け方は、UTF-8のバイト列をISO 8859-1で読んだものに間違いありません。
> 「テスト」を調べたらUTF8とでた
ということですので、考えられることは2つ。
・文字列はUTF-8で正しく入っているが、表示の段階でISO8859-1として解釈されている
・文字列は「UTF-8のバイト列をISO8859-1で読んだもの」がUTF-8に変換されて入っている
前者ならば分かりません。
後者ならUTF-8からISO8859-1に変換してからUTF-8として読んでみてください。
    • good
    • 0
この回答へのお礼

>化け方は、UTF-8のバイト列をISO 8859-1で読んだものに間違いありません。
ヒントを下さりありがとうございます。
でもPHPだけではやっぱりダメみたいです。ありがとうございます。

お礼日時:2014/05/25 14:57

Qiita - PHPでデータベースに接続するときのまとめ


http://qiita.com/mpyw/items/b00b72c5c95aac573b71

>> 文字セット指定の方法を誤っている
>>
>> 文字セット指定すらしていない場合は論外。日本人ならマルチバイト文字を想定して当然。

に該当していませんか?
    • good
    • 0
この回答へのお礼

回答ありがとうござます。

お礼日時:2014/05/25 14:39

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!