3

MySQLデータベースにスウェーデン語の文字を保存するのに問題があります。usersそれらを照合utf8-binで呼び出されるテーブルに格納したいと思います。utf8を使用していますが、文字å ä öはとして保存されÃ¥ ä ö、理由はわかりません。データを取得してエコーすると、同じ出力が得られますが、の代わりに奇妙な文字が使用されå ä öます。どんな助けでも大歓迎です。

4

4 に答える 4

8

電話

mysql_set_charset("utf8");

接続後、クエリを実行する前。

データベースの文字セットはストレージ専用であり、アプリとデータベース間の送信用ではありません。

于 2013-03-24T23:39:02.870 に答える
1

エンコーディングに注意を払わなければならない場所がいくつかあります。

  • データベース:すでにutf8照合を使用しているので、問題ありません
  • データベース接続:mysqli_set_charsetmysqliを使用している場合は、接続の文字セットを設定するために使用します。他のデータベースドライバにも同様の機能があります。
  • ページの出力エンコーディング:HTTPヘッダーまたはメタタグを使用できます。安全を確保したい場合は、両方を指定してください。
于 2013-03-24T14:48:45.597 に答える
0

データベース接続でスウェーデン語のエンコーディングが使用されていることと、ページ出力のエンコーディングも正しいことを確認する必要があります。エンコーディングが異なると、これらの問題の多くが発生します。文字エンコードについて詳しくは、こちらをご覧ください。

于 2013-03-24T14:08:11.337 に答える
0

ここで考慮しなければならないいくつかのパラメーターがあります。これが現在および将来うまく機能するために。テキストとのすべての異なる相互作用は、同じエンコーディングである必要があります。db内でも(結合がうまく機能するためなど)。

  1. 挿入されたデータのエンコーディング(ページのヘッダーに設定されているか、挿入された場合はutf_8エンコーディング)。

  2. dbテーブルでのエンコーディング(すべてにutf8_swedishをお勧めします)

  3. ページ表示のエンコーディングはdbから生じます(これをヘッダーに設定します)

  4. 編集されたページのエンコーディング。異なるエンコーディングでドキュメントを開くことが可能です。あなたがそれに精通していない場合、これは大きな問題です。ドキュメントを開いて正しいエンコーディングで保存します。

以前は接続エンコーディングに関して問題がありましたが、これを正しく設定してください。しかし、今日では、変更により、数年前よりも小さな問題になっています。

いくつかのメモ。データがそのように保存されているか、またはphpmyademinなどを介して間違って表示されていることを確認しますか?print utf8_encode($ text)で印刷してみてください

または、utf8_decode()関数を使用すると、洞察が得られます...

于 2013-12-22T02:01:47.557 に答える