約2ダースの投稿を経た後、私は公式に困惑しています。utf8_general_ci 照合列を持つデータベースがあります。PHPMyAdmin を使用すると、テーブル内の UTF-8 データを正しく表示できます (少なくとも、私が知る限り)。私がやりたいことは十分に単純だと思いました。さまざまな方法でデータを照会しましたが、utf-8 値をエコーしたいだけです。
echo bin2hex("more…"); //note "…" is a special character
6d 6f 72 65 e2 80 a6 (Hex Value)
ただし、 $row->value を単にエコーすると、次のようになります。
6d 6f 72 65 85
UTF-8 エンコーディングは次のようになります。
6d 6f 72 65 c2 85
私が読んだほとんどの投稿は mysql_set_charset("utf8") を使用すると述べていますが、これは本当に物事を台無しにします:
6d 6f 72 65 26 61 63 69 72 63 3b 80 26 62 72 76 62 61 72 3b
そして最後に mysql_set_charset("utf8") & utf8_encode($var) を使用:
6d 6f 72 65 26 61 63 69 72 63 3b c2 80 26 62 72 76 62 61 72 3b
PHPでUTF8設定を設定しようとしました。Godaddy はこれを少し難しくするので、ini_set を使用してこれを行いました。ただし、mbstring.encoding_translation は有効になりません。
// UTF8 settings
ini_set('mbstring.language', 'Neutral');
ini_set('mbstring.internal_encoding', 'UTF-8');
ini_set('mbstring.http_input', 'UTF-8');
ini_set('mbstring.http_output', 'UTF-8');
ini_set('mbstring.encoding_translation', 'On');
ini_set('mbstring.detect_order', 'auto');
ini_set('mbstring.substitute_character', 'long');
私が何をする必要があるかについてのヒントはありますか?