1

私のデータベースの一部の行には、ある種のアポストロフィが含まれています。これは、PHPで表示されると、中央に疑問符が付いたひし形に変換されます。例、正しくコピーされた場合:Captain Jim O’Brien

これらの「アポストロフィ」は、ユーザーがWordから、またはMacコンピューターから何かをコピーして貼り付けていたTinyMCEを介して挿入された可能性があります。

これらの「アポストロフィ」を表示するにはどうすればよいですか?PHPMyAdminで行を表示すると、アポストロフィが表示されます(ひし形は表示されません)ので、明らかに方法があります。

私の文字エンコードはUTF-8に設定されていますが、試してみましたがhtmlspecialchars($string)htmlentities($string)うまくいきませんでした。

4

1 に答える 1

2

文字はさまざまな場所でエンコードされます。

MySQLには特定の文字エンコードがあります。デフォルトでは、UTF-8ではなくlatin1です。

PHPを使用して生成するHTMLドキュメントにも、特定の文字エンコードが指定されています。最後に、HTMLドキュメントの実際のバイトは、実際には特定の文字エンコードを想定しています。注意しないと、ドキュメントに指定した文字エンコードとは異なる場合があります。

最初のステップとして、MySQLエンコーディングがUTF-8に設定されていることを確認します。MySQLでは、データベースのデフォルトの文字エンコードをテーブルごと、または列ごとにオーバーライドできることに注意してください。

文字エンコードをより深く理解するために、この関連記事に興味があるかもしれません

文字エンコードと’の問題

アップデート

そもそも何かがデータをMySQLデータベースに入れました。おそらく、その「何か」はUTF-8エンコーディングを使用していませんでした。

于 2012-07-24T16:10:11.733 に答える