0

私はローカルホストにwampを使用していますが、そのmysqlのバージョンは5.5です。私のウェブサイトを終えた後、私はそれを私のウェブサイト(共有ホスティング)にアップロードしたかった。これは(5.1)を実行しますが、アラビア文字を挿入できなくなりました。

アラビア語でフィールドを挿入すると、奇妙な文字「ضووع」として保存されます。

それは私のPCでうまくいっていましたが、オンラインではありませんでした。

データベースはデフォルトでmyisamですが、すべてのテーブルはutf8_general_ciでinnodbです。また、これは私のマシンで使用したものと同じデータベースです(デフォルトではinnodb)(共有ホスティングの新しいデータベースにインポートしました)。

これまでのところ、接続してからそれらを試しました

mysql_set_charset('utf8');

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET COLLATION_CONNECTION = 'utf8_unicode_ci'");

もっと何ができますか?

4

2 に答える 2

2

mysql_set_charset('utf8');データを挿入するときにエラーが発生せずに使用している場合は、データベースにutf-8を正しく指定していることを意味します。別の側面では、Windows-1256(MySQLでラベル付けされた)などの他の文字セットでテーブルを定義することもできますが、表示される'cp1256'出力(Windows-1252としてデコードされたUTF-8)からは不可能に見えます。

したがって、データベースからデータをエコーし​​、この文字列を確認している可能性があります。出力を送信する前に、データがUTF-8にあることもブラウザに通知する必要があります。

<?php
header("Content-Type: text/html; charset=utf-8"); 

すでにこれを行っている場合、またはこれが役に立たない場合は、インポートプロセスでデータが誤って変換された可能性があります。

この場合、再インポートできる場合は、データをエクスポートするときにutf-8として出力され、エクスポートされたデータをインポートするときにutf-8として扱われることを確認してください。

于 2013-01-30T10:02:15.257 に答える
0

これは私に一度起こりました、私は使用していました、しかし私が使用htmlentities()したときhtmlspecialchars($string, ENT_QUOTES, 'UTF-8');問題は解決しました。

あなたが同じ問題を抱えていることを願っています。

于 2013-01-30T22:17:40.960 に答える