0

照合がut8_general_ciに設定されているテーブルがあります。表の列もこのエンコーディングに設定されています。

ただし、何らかの理由で、MySQLでテーブルを表示すると、テーブルのテキストはISO Latin 1としてレンダリング/保存され、テーブルのエントリのテキストを編集したくない場合は、使用する必要があります。テキストがページ上で正しくレンダリングされることを確認するためのISOLatin1エンコーディング(ページユーザーUTF8)。

ISO Latin 1テキストをテーブルに手動で入力することは通常は機能しますが、いくつかのエントリでは機能しません。つまり、文字がページ上で正しくレンダリングされません(UTF8を使用すると文字も正しくレンダリングされません)。したがって、この質問。MySQLが文字エンコードをどのように処理するかを理解できれば、おそらくこの問題を分類できます。

したがって、問題は、MySQLがエンコーディングを処理する方法、具体的には、照合がUTF-8に設定されているときにテーブルにISOLatin1文字が表示される理由を誰かが説明できるかどうかです。

4

1 に答える 1

0

ページ、テーブル、およびテーブルの列に文字エンコードを設定したにもかかわらず、テーブルへの接続はデフォルトでISO Latin1に設定されていたことがわかりました。クエリに「SETNAMESutf8」を追加すると、これが修正されました。

$pdo = new PDO('mysql:dbname=****;host=localhost', '****', '****',
                array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));

リンクされた記事のdecezeは非常に役に立ちました。ありがとう!

于 2012-08-16T19:42:02.070 に答える