2008年11月20日

[mysql 14688] Re: UTF-8環境の文字化けに関して

加藤です

phpinfoのmb_string周りがどんなふうになってるかわからないのでなんとも言え
ないのですが。
根本的な解決は、もっと詰めないといけないとして、断片的にやってる気がする
ので、明示的にいろいろ書いてみてはいかがでしょうか?
たぶん、DBにインサートする段階でキャラクタセットが変換されてないのかと
思います。


キャラクタセットに関する記述を、すべて明示的にいれてみます。

<?php

mb_language('Japanese');
mb_internal_encoding("utf-8");

if (!headers_sent()) {
header('Content-Type: text/html; charset="utf-8"');
}

print mb_detect_encoding(##DBから取得したデータ##, "utf-8",
"ASCII,JIS,UTF-8,EUC-JP,SJIS");
print ##DBから取得したデータ##;
print mb_convert_encoding(##DBから取得したデータ##, "utf-8",
"ASCII,JIS,UTF-8,EUC-JP,SJIS");

?>


> tuchidaです
>
> 結果は以下の通りでした。
>
> てすと<BR>
> ASCII
> ??????????????
> ??????????????
>
> なんでASCIIなんでしょう?
> またPOSTした所でmb_convert_encoding()を使用しても同じでした。
>
>
> ----- Original Message -----
> From: "kazu" <ml@xxxxx>
> To: <ml@xxxxx>
> Sent: Wednesday, November 19, 2008 11:52 PM
> Subject: [mysql 14686] Re: UTF-8環境の文字化けに関して
>
>
>> 加藤です。
>> では以下はいかがでしょうか?
>>
>> <?php
>> print "てすと、てすとてすと<br>\n";
>> print mb_detect_encoding(##DBから取得したデータ##, "auto");
>> print ##DBから取得したデータ##;
>> print mb_convert_encoding(##DBから取得したデータ##, "utf-8", "auto");
>> ?>
>>
>>
>>> tuchidaです。
>>>
>>>
>>>> <?php
>>>> print "てすと、てすとてすと<br>\n";
>>>> print ##DBから取得したデータ##;
>>>> ?>
>>> 出力結果は
>>>
>>> てすと<BR>
>>> ??????????????
>>>
>>> となりました
>>> 出力の際におかしいのでしょうか?
>>>
>>>
>>>
>>>
>>
>> __________ ESET Smart Security からの情報, ウイルス定義データベースのバー
> ジョン 3624 (20081119) __________
>> このメッセージは ESET Smart Security によって検査済みです。
>>
>> http://canon-its.jp
>>
>>
>
>
>


投稿者 xml-rpc : 2008年11月20日 08:14
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/79239
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。