私は「英語以外の」文字を扱ってきたので、これらの文字を適切に表示および保存するには、いくつかのことが必要です。
順不同 (ペルシア語に最適な文字セットがわからないため、UTF-8 を使用します。異なる場合は、必要なものを使用してください):
PHP header('Content-type: text/html; charset=utf-8'); から適切なヘッダーを設定して、使用している文字セットをブラウザに伝えます。または、次のように html にメタ タグを設定します。
データベースでは、列/テーブルに異なる照合順序と文字セットを混在させないようにしてください。私は常にデータベース、テーブル、および列を utf8_general_ci に設定しています。これは、私のニーズに合わせて常に機能します (英語、ドイツ語、セルビア語、ハンガリー語などの言語...)。
Jan が言ったように、http://dev.mysql.com/doc/refman/5.0/en/charset-connection.htmlを読んでください。おそらく、データベースに接続した直後に SET NAMES utf8 のようなクエリを実行する必要があります。
これにより、Unicode 文字が適切に表示されるようになります。ただし、これらすべてをオーバーライドできるものがもう 1 つあります。Web サーバーです。Apache (他のサーバーについては知りません) には AddDefaultCharset ディレクティブがあります。ほとんどのセットアップでは、これはオフのままですが、デフォルトの文字セットが latin1 に設定されているセットアップに遭遇したため、すべての文字セット設定が上書きされました。これが設定されている場合は、httpd.conf (または同様の構成ファイル) で設定されます。アクセスできる場合は、オフに設定することをお勧めします。そうでない場合は、次のようなものを使用して、webroot に配置された .htaccess でグローバル値をオーバーライドできます: AddDefaultCharset utf-8