0

データベースに特殊文字 (© や ® など) を追加すると、この文字も含めて保存されるようです:Âというように、このように保存©されます。

データを保存するときにデータベースがこれを行っていると考えることができます(ただし、現在発生しているようです)、おそらくブラウザが原因ですか?データベースに保存するときにデータを HTMLEncode しないので、個人的に問題を再現できなかったので、他の誰かがこの同じ問題を抱えているのではないかと思いますか?

これを行っているのはWebブラウザだと思いますか?jQuery経由でフォームを送信したことが原因で発生している可能性がありますか? これを引き起こしている犯人は何ですか?

4

1 に答える 1

1

これは、通常、アプリケーションの一部で iso-8859-1 を使用し、別の部分で utf-8 を使用して、エンコーディングの不一致が原因です。

データベースと個々のテーブルの定義、Web ページ コンテンツのエンコード、およびフォームのエンコードを確認してください。一貫して同じエンコーディングを使用していることを確認してください。エンドツーエンドのすべてに utf-8 を使用します。


SQL Server ではなく MySQL を使用しているため、詳細はわかりません。MySQL の場合、テーブルを定義する DDL ファイルは通常、次のようなもので終わります。

    SOMEDATA VARCHAR(100),
    INDEX USER_ID
)
engine = InnoDB
default character set utf8
collate = utf8_general_ci

すべての/生成されたページに含まれる共通ヘッダー

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

タグでは、 accept-charset を明示的に<form>設定できます

<form accept-charset="utf-8" (etc)>

SOに関するこの完全に関連性のない質問を参照してください

于 2012-07-09T17:57:04.120 に答える