0

mysql に「ñ/Ñ」文字を含む単語があります。しかし、印刷すると、疑問符記号が付いたひし形に置き換えられました。これはこれまでのことですが、うまくいきませんでした。

<meta charset="utf-8">
mysql:host=localhost;dbname=dbnameko;charset=UTF-8
Collation : latin_sedish to utf8_general_ci

私はそれをグーグルで検索し、すでにstackoverflowスレッドを検索しましたが、答えはありませんでした。

4

2 に答える 2

0

私たちは1991年からUnicodeを使用しているので、そのような問題がまだ私たちの仕事を妨げているのはかなり残念です。残念ながら、i18nのデフォルトはすべて間違っていることがあるため、自分で行う必要があります...

HTTPに関する限り、あなたは正しいことをしましたが、MySQL接続のために正しいことをしなければなりません...

これを試して:

  $result = mysql_query("SET NAMES utf8; SET CHARACTER SET utf8;");
  $cmd = "select * from yourtable";
  $result = mysql_query($cmd); //all should data should arrive correctly encoded

各接続でこれを行う必要がないように、.cnfファイルを変更できます。次のSOの質問に対する受け入れられた回答をご覧ください。my.cnfでMySQLのデフォルトの文字セットをUTF-8に変更しますか?


更新:問題は確かにSQL接続文字列にあったことが判明しました。ただし、ApacheではAddDefaultCharsetも問題を引き起こす可能性があるため、回答のこの部分は残しておきます。

AddDefaultCharsetは、それが何をするのか理解していないと厄介です!設定されている場合、Apacheはtext/htmlおよびtext/plainコンテンツタイプの応答の文字セットを設定します。これは事実上、あなたが無視されることを意味します。Sacxのコメントとしてutf-8に設定するか、オフに設定します。(ちなみに、特定の文字セットではなく「on」に設定されている場合、これは「iso-8859-1」に設定されている場合と同じになり、そのような状況のデバッグが非常に困難になります!)詳細: http://httpd.apache.org/docs/2.2/mod/core.html


参照: MySQLでUTF-8を適切に処理する方法

于 2012-11-29T12:50:10.443 に答える
0

Web サーバーはこの文字セットを認識していません。Apache を使用している場合は、構成ファイルまたは .htaccess にこの行を追加します。

AddDefaultCharset utf-8
于 2012-11-29T12:54:52.877 に答える