10

値がそのように見えるヘブライ語の代わりに、ヘブライ語の値を私のmysqlデータベースに挿入しようとしています。

שד×'שהכעשה</p>

テーブルの照合はデフォルトでlatin1_swedish_ciです。utf-8_general_ci、hebrew_bin、hebrew_general_ciにも変更しようとしましたが、結果は同じです。

私のコードでは、もちろんメタタグを使用して文字セットを構成しています:

<meta charset="UTF-8">

そして、php クエリの前に、次の行を追加しました。

mysql_query("SET NAMES utf8");

phpmyadmin で結果を表示しています。

4

8 に答える 8

19

ヘブライ語の問題を解決しました。これは、データベースとテーブルの行/フィールドのエンコーディングの問題でした。これが私が使用した解決策です。別の回答から助けを得ました。誰かが必要な場合に備えて、リンクを以下に示します。

  1. データベースの照合順序は である必要がありますutf8_general_ci
  2. 表とヘブライ語の照合はutf8_general_ci.
  3. PHP接続スクリプトに

    header('Content-Type: text/html; charset=utf-8');
    
  4. xhtmlのheadタグに入れます

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    
  5. MySQLi を使用している場合は、データベースを選択した後、接続スクリプトに次のコードを追加します。

    mysql_query("SET NAMES 'utf8'");
    

    PDOを使用している場合は、

    $conn->query("SET NAMES 'utf8'");
    

最初の答えは私を助け、そこからそれを取りました

于 2013-09-21T04:14:27.863 に答える
4

collat​​ion_connection を確認します。

show variables like '%collation%'
于 2013-05-30T12:53:03.767 に答える
0

今後の使用のために、この問題があり、mysqli ではなく PDO を使用している場合は、次のようにする必要があります。

  1. データベース (すべて) の照合順序はutf8_general_ciでなければなりません。
  2. ヘブライ語とのテーブルの照合もutf8_general_ciに設定します。
  3. HTML の「head」タグに、次を追加します: < meta charset="utf-8" >
  4. PHP 接続ファイルで、接続クエリの後に次の行を追加します: conn->exec("set names utf8");
  5. クラスを使用している場合は、おそらく「conn」を変数として持つでしょう。その場合、次のように使用する必要があります: $this->conn->exec("set names utf8");

これが、この問題を抱えて PDO を使用している将来の人々に役立つことを願っています。幸運を祈ります。

于 2016-09-18T15:09:51.840 に答える
0

値がデータベースに適切に渡されるようにするために、データベースに挿入する前に die ステートメントを追加し、値を出力します。例:

die($_POST['thevalue']);
//insert to database.
//...

うまくいけば、問題はデータベース側にあり、データベースでこの照合を試してみます

| | ヘブライ語 | ISO 8859-8 ヘブライ語 | hebrew_general_ci | ヘブライ語_一般_ci | 1 |

http://dev.mysql.com/doc/refman/5.0/en/charset-mysql.htmlに従って提案します。

しかし、php 側で失敗した場合、サーバーがヘブライ語をサポートしていない可能性があります。HTML 出力ドキュメントで正しいメタタグを使用していることを確認してください。

...
<meta charset="ISO 8859-8">
...

それがどのように進行するか教えてください、頑張ってください:)

于 2013-09-26T13:22:24.057 に答える
0

最終的に私を助けたのは、接続に文字セットを追加することです:

{"mysql:host=$host;dbname=$db;charset=utf8"}
于 2016-12-29T22:05:11.647 に答える