重複の可能性:
UTF-8 全体
ソリューションを高低で検索します。質問を投稿する前に、多くのバリエーションを試しました。
phpMyAdmin と html ページで同じ名前を表示するには何が必要ですか? これは達成できますか?
編集 1:これは mysql の問題のようです。なんで?PHP で生成された HTML ページには常に正しい文字が表示されるためです。この時点で、正しく表示されないのはデータベースだけです。
編集 2:明確化。以下のコードスニップと画像に示されている元の設定では、
- ジョアンと入力して送信
- João がデータベースに表示されました
- リロード後のジョアン表示
の追加mysqli_query ( $link, 'SET NAMES utf8' )
- ジョアンと入力して送信
- João がデータベースに表示される
- リロード後に表示される Jo�o
編集 2 を終了
mysql データベースで、phpMyAdmin で表示:
項目は次のようにデータベースに表示されます: (データベースで正しく表示されるように最初の João を変更しました)
そして、エンコーディングが設定されたhtmlページでは、名前は次のように表示されます(順序が逆になり、変更されたものには黒いひし形があります)、
エンコーディング:<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
列の照合順序を utf8_bin、utf8_general_ci、utf8_unicode_ci に変更しようとしましたが、どちらの側にも変更はありません。また、ドキュメント (BBEdit) を UTF-8 から UTF-8 (BOM 付き)、ISO Latin 1、および Windows Latin 1 に変更しました。これらのいくつかは、より多くの黒いひし形を作成し、問題を悪化させました。(画像では UTF-8 に設定) ã、é などをエンコードされた同等のものに preg_replace しようとさえしました。
簡単に言えば、João がページに入力され (上記のコンテンツ タイプ)、João がデータベースにあり、João が更新時に HTML ページに来るということです。
アイデアを探しています。ありがとう。