私のページには、通常の文字の代わりに、ã、ã、ã¬、ã¹、ã などの文字が表示されることがよくあります。
ヘッダー ページと MySQL エンコードに utf8 を使用します。これはどのように起こりますか?
私のページには、通常の文字の代わりに、ã、ã、ã¬、ã¹、ã などの文字が表示されることがよくあります。
ヘッダー ページと MySQL エンコードに utf8 を使用します。これはどのように起こりますか?
これらは utf-8 でエンコードされた文字です。それらを通常の ISO-8859-1 文字に変換するには、utf8_decode()を使用します。
これらの文字が表示される場合は、おそらく文字エンコーディングが適切に指定されていません。これらの文字は、UTF-8 マルチバイト文字列がISO 8859-1やWindows-1252などのシングルバイト エンコーディングで解釈された場合の結果であるためです。
この場合、UTF-8 で Unicode 文字 (U+00EB)ë
を表す 0xC3 0xAB でエンコードできます。ë
便利な解決策ですutf8_decode
が、テーブル自体のエンコード エラーを修正することを好みます。私の意見では、コードに「ハック」を作成するよりも、悪い文字自体を修正する方が適切です。replace
テーブルのフィールドでa を実行するだけです。OP からの不正なエンコード文字を修正するには:
update <table> set <field> = replace(<field>, "ë", "ë")
update <table> set <field> = replace(<field>, "Ã", "à")
update <table> set <field> = replace(<field>, "ì", "ì")
update <table> set <field> = replace(<field>, "ù", "ù")
はmysql<table>
テーブル<field>
の名前で、 はテーブル内の列の名前です。Windows-1252 からutf -8 文字への一般的に不適切なエンコードの非常に優れたチェックリストを次に示します。
文字を SQL に置き換える前に、必ずテーブルをバックアップしてください。
[これは非常に古い質問への回答であることは知っていますが、再び問題に直面していました。一部の古い Windows マシンは、テキストを utf8_general_ci 照合テーブルに挿入する前に正しくエンコードしませんでした。]