ホームページ  >  記事  >  バックエンド開発  >  クエリデータベースのデータが文字化けしているので解決してください。

クエリデータベースのデータが文字化けしているので解決してください。

WBOY
WBOYオリジナル
2016-06-23 14:14:28891ブラウズ

1.php と html はどちらも utf-8 です
2.convention.php の 'DEFAULT_CHARSET' => 'utf-8'、
3.DbMysql.class.php をこのように変更するのは正しくありません $result[] = auto_charset ($row, gb2312, utf8)
// 自動変換文字セットは配列変換をサポートします
function auto_charset($fContents,$from,$to){
$from = strtoupper($from)=='UTF8'? - 8':$from;
$to = strtoupper($to)=='UTF8'? 'utf-8':$to;
if( strtoupper($from) === strtoupper($to) || 空( $ FCONTENTS) || (IS_SCALAR ($ FCONTENTS) &&! IS_STRING ($ FCONTENTS)) {
// コード化されたスケールが同じか非文字列の場合、変換されません。 Cure ) {
return iconv($from 、$ fcontents); else{
return $fContents;
}
}


解决不了了 新手求助中-----


回复讨论(解决方案)

如果只是查询データベース、セット名 utf8 を設定するだけで済みます。 utf-8データを取得します。もちろん。テーブルは utf8 でエンコードされている必要があります。

php と html はどちらも utf-8 です
次に、データベースに接続した後、SQL コマンド set names utf8 を実行します
もちろん、これはデータベースが mysql で、設計されたフィールドがワイド文字をサポートしている場合を指します



php と html これらはすべて utf-8 です
次に、データベースに接続した後、SQL コマンド set names utf8 を実行します
もちろん、これはデータベースが mysql で、設計されたフィールドがワイド文字をサポートしている状況を指します
set names はどこにありますかutf8? ? thinkphph フォルダー内のどのファイルですか?

'DEFAULT_CHARSET' => 'utf-8', // デフォルトの出力エンコーディング
'DB_CHARSET' => 'utf8', // データベースエンコーディングのデフォルトは utf8 です

thinkphph は名前を utf8 に設定する必要はありません

自分でやる方法を知っています

根本的な原因は次の 2 つの文です。 Rub

// $job=M("Form")

// $list=$job->where(); ->find();
$ job=M("Form");
$list=$job->select();

初心者の方は文句を言わないでください



mysql_query('set名前は utf-8');

文字化けが発生する場合は、データベースを構築するときにエンコーディングが異なる可能性があります。ライブラリのエンコーディングを確認して、データベースの作成名を表示し、エンコーディングが一致していれば問題はありません。文字化け

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。