ホームページ  >  記事  >  バックエンド開発  >  SQL がデータを読み込んで、Web ページ上に文字化けして表示されます。

SQL がデータを読み込んで、Web ページ上に文字化けして表示されます。

WBOY
WBOYオリジナル
2016-06-23 13:57:46909ブラウズ

php の mssql_connect を介して ms SQL データを直接接続します。データをクエリするとき、php に付属の mssql を使用する限り、読み取られるデータのエンコード形式は gbk でなければなりません。これは、mssql 自体のエンコードが gbk しかないためです。 Definition

while($row = mssql_fetch_row($result)){
echo iconv('GB2312','UTF-8',$row[0]); はできません

出力がまだ文字化けしているのはなぜですか? ? ? ? ?

セット名を使用しても機能しません。

ディスカッションに返信 (解決策)

あなた

$row = mssql_fetch_row($result);

結果を投稿


YTo1OntpOjA 7 czoxNDoiEwbJEMpqqc100THTUNUiO2k6MTtzOjg6ItD41bnN6rPJIjtpOjI7czoxMDoiMjAxMi0xMS0xOSI7aTozO3M6MToiMSI7aTo0O047fQ==

Array(    [0] =>  ??┩t?1??    [1] => 续展完成    [2] => 2012-11-19    [3] => 1    [4] => )

あなた mssql マネージャーに表示される $row[0] に対応するフィールドの内容は何ですか?

Web ページのエンコーディング、メタ設定のエンコーディング、データベースの文字エンコーディングが正しいことを確認してください

Array(    [0] =>  ??┩t?1??    [1] => 续展完成    [2] => 2012-11-19    [3] => 1    [4] => )

mssql マネージャーに表示される $row[0] に対応するフィールドの内容は何ですか?


変換したデータは正しいのですが、なぜ配列 0 は文字化けしていますか? そして、私の mysql は次のように変換しました

$fZTDM = iconv('GB2312','UTF-8',$mssql_row[ 'fTMID' ]);
データベースへの挿入も文字化けします: { jéâ??

データを渡されました。確認するためにデコードしただけです
要素 0 は、取得した時点ですでに文字化けしていました。 mssql マネージャーの元のコンテンツ この方法でのみ、文字化けの原因を特定できます



データを提供していただいたので、デコードして調べただけです

要素 0 は、取得したときにすでに文字化けしていたので、 mssql マネージャーで元のコンテンツを表示する必要があります

これが文字化けの原因を特定する唯一の方法です

要素の元のコンテンツは 0x1306C910CA6AA9CD74D131D350D5 です
データを追加するときに、base64_decode が使用されます。どのようにトランスコードしても無駄です

このフィールドの値は mysql にとって意味がありませんね。 mysql では意味がありませんね

要素 1 のエンコーディングを変換して mysql に挿入する方法
Mysql は utf8 なので、変換と挿入に mb_convert_encoding と iconv を使用できません

変換はありません。が必要なので、読み戻されるデータは gbk です

したがって、ループの読み取りと挿入の前に mysql_query('set names gbk'); を実行するだけで済みます

変換は必要ありません、読み戻されるデータは gbk です

、mysql_query( 'set names gbk' を読み取って挿入するループの前) を実行するだけです


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