1

PHP 5.3、MySQL 5、および PHPMyAdmin 3.4 を使用してアラビア語の Web サイトを作成しました。

すべてのページで、「utf-8」文字セットを使用しています。すべてのページに次の行を含めます。

http://jsfiddle.net/Hh7mk/

Web サイトはオフライン (ローカル サーバー (localhost) 上) で正常に動作します。新しいアラビア語の文章を編集してデータベースに挿入した後でも。

問題は、ウェブサイトがオンラインの場合です。アラビア語のフォントはすべて正しく表示されますが、オンラインで新しいアラビア語の文章を編集またはデータベースに挿入した後、新しい文章が疑問符として表示されます。

私の設定 (オンライン):

  • PHPMyAdmin MySQL 接続照合: utf8_general_ci.

  • PHPMyAdmin MySQL charset : UTF-8 Unicode (utf8)。

  • データベースとテーブルの照合: utf8_general_ci.

接続ファイルには、mysqli query SET NAMES 'utf8' と SET CHARACTER SET utf8 を含めました。

また、照合を「cp1256_general_ci」に変更し、ページの文字セットを「windows-1256」に変更しようとしましたが、フォントはまだ疑問符として表示されます。

アラビア語フォントをオンラインで挿入/編集した後、疑問符が表示されるのはなぜですか? これを修正する方法は?

前もって感謝します

4

3 に答える 3

3

mysql_set_charsetを使用してみましたか

mysql_set_charset("utf8"); 
于 2012-07-15T06:41:37.730 に答える
0

あなたはすべてを正しくやっているようです。しかし、データを挿入する前にこれをすべて作成しましたか? データベースをクリーンアップして最初から挿入してみてください

于 2012-07-29T06:48:14.380 に答える
0

アスキー? マークのコードは 63 で、これはすべてのアラビア文字の最初のバイトです (各文字には 2 バイトあります)。あなたの弦をに変えましたか?文字の最初のバイトのみが保存/取得されることを意味します。これは、格納/取得プロセスのどこかに、ASCII 文字のみが通過できるボトルネックがあることを示しています。私の賭けはMySQLにあります。これを見つける最善の方法は、ローカル サーバーのコードを使用して (ローカルの PhpMyAdmin を使用する必要があります)、運用サーバーの MySQL に接続することです。問題が解決しない場合は、MySQL の構成が原因であることを示しています (ローカルの PhpMyAdmin がローカルの MySQL で正常に動作するという事実を考慮して)。問題を調査する方法についてのアイデアしか提供できません。自分で問題自体を見つける必要があります。

于 2012-07-29T08:41:38.570 に答える