0

データベースから取得した国の多くの文字列を印刷したいのですが、使用するたびに不思議な文字が表示されます:

utf8_encode($string); the out put is  (Algérie ,  Arménie ,Azerbaïdjan ,Biélorussie )
utf8_decode($string); -> (Algérie , Arménie , Azerba?djan , Bi?lorussie )
htmlentities($string); -> (Alg�©rie , Arm�©nie ,Azerbaïdjan, ... )

私はヘッダーに入れようとしました:

header ("Content-Type:text/html;charset=ISO-8859-1"); ->Arménie , Azerbaïdjan

header ("Content-Type:text/html;charset=utf-8");  -> Azerba�djan

データベースの構成をチェックインしたところ、見つかりました

$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_unicode_ci';

何か案が ?

4

1 に答える 1

0

これは、すでにデコードされている文字列に対して utf8_decode などを使用している場合や、既に UTF8 である何かをエンコードしている場合に発生することがあります。それがあなたがしていることである場合は、最初から文字列をエンコード/デコードしないようにしてから、出力が何であるかを確認してください。

私は CodeIgniter でこの問題を抱えていました。すでにデコードされたものをデコードすると、文字がおかしくなりました。

データベースからデータを取得している場合は、そこにあるテーブル/フィールドの照合も確認してください。

于 2013-01-24T10:34:33.540 に答える