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