ホームページ  >  記事  >  バックエンド開発  >  php、mysql、UTF-8エンコーディングの問題

php、mysql、UTF-8エンコーディングの問題

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

UTF-8エンコーディング「xe6x93x8dxe4xbdx9c」というものがあります
ページ内で直接値を代入して出力する場合は正しいです
$subject="xe6x93x8dxe4xbdx9c"; $subject=mb_convert_encoding($subject) , "GB2312", "UTF-8");
echo $subject;
?>
しかし、レコードをデータベースに保存した後も、入力は "xe6x93x8dxe4xbdx9c" のままです。マスターも同様の問題に遭遇しました。アドバイスをお願いします。ありがとうございます

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

何を表現したいのかわかりません

データベースのエンコーディングを見てください。おそらく GB2312 ではありません


プログラム内の "xe6x93x8dxe4xbdx9c"

utf-8 エンコード 演算 16 進数の内部コードの表現 (二重引用符で囲む必要があります)

それ以外の場合は、xe6x93x8dxe4xbdx9c のような単なる文字列です

書かれたプログラム内の文字列は変換され、外部の文字列は変換されません
文字列 xe6x93x8dxe4xbdx9c は次のように変換できます
それ以外の場合は、単に xe6x93x8d xe4xbdx9c です このような文字列

は、プログラム内に記述されている場合にのみ変換され、外部からは変換されません

文字列 xe6x93x8dxe4xbdx9c の場合、次のように変換できます

$s = '\xe6\x93\x8d\xe4\xbd\x9c';echo hex2bin(str_replace('\x', '', $s));echo urldecode(str_replace('\x', '%', $s));


司会者が言った通り、その通りです、皆さんありがとうございます

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