Webページ
MYSQLデータベース上でデータベースからクエリした文字列が表示される際に文字化けする問題について、そこからクエリしたデータとechoを使ってWebページに出力したデータが文字化けしており、不思議なことに一か所だけ文字化けしており、残りは文字化けしています。
$sql="select username from pw_members where uid=?";
$result=$handler->exeSql($sql,array($winduid),"select");
if($result){
echo '
'.$result["username"].'
' }else{
echo '
不明なユーザー名
';
}
これはコードです。Web ページの先頭は
データベース情報は次のとおりです:
サーバーの文字セット:utf8
DB の文字セット:utf8
クライアントの文字セット:utf8
接続文字セット: utf8
フィールド情報:
フィールド:ユーザー名
タイプ:varchar(18)
すべてのテキストが文字化けしているわけではなく、この場所だけが文字化けしています、説明してください~~
-----解決策-------------------------------- 不明なユーザー名 これは文字化けではないことがわかると思います
データベースは UTF-8 で保存されていますが、フロントエンドに表示される HTML は GBK エンコーディングを使用しています。当然、一部の部分は必ず文字化けします。
$result["username"] を GBK に変換できます。
$result["username"] = iconv('UTF-8', 'GBK', $result["username"]); >または、.php または .html ファイルを utf-8 として保存します
------解決策------------------
データベースのエンコーディングは UTF-8 です。ページのエンコーディングとファイルのエンコーディングを UTF-8 に設定することで手間を省くことができます。
さらに、データベースのデータを取得する前にデータエンコーディングを指定します
SET NAMES('UTF8');//gbk