exeSql($s"/> exeSql($s">

ホームページ  >  記事  >  バックエンド開発  >  データベースからクエリした文字列がWebページ上で表示される際に文字化けしてしまう問題について

データベースからクエリした文字列がWebページ上で表示される際に文字化けしてしまう問題について

WBOY
WBOYオリジナル
2016-06-13 13:17:53865ブラウズ

Webページ
MYSQLデータベース上でデータベースからクエリした文字列が表示される際に文字化けする問題について、そこからクエリしたデータとechoを使ってWebページに出力したデータが文字化けしており、不思議なことに一か所だけ文字化けしており、残りは文字化けしています。

$sql="select username from pw_members where uid=?";
$result=$handler->exeSql($sql,array($w​​induid),"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

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