mysql_real_escape_stringとアポストロフィの問題
-
11-10-2019 - |
質問
だから私はmysql_real_escape_stringを使用してデータベースにデータを挿入しています...しかし、それを行うと、すべてのアポストロフィをシンボルに置き換えます -
したがって、表示する代わりに、表示しています。
データベースから読み返したときに、それらをアポストロフィに再変換する方法はありますか?
解決
これは、何らかの形で問題をエンコードするキャラクターです。
UTF-8で、 ’
(U+2019)は0xE28099でエンコードされています。そしてそれはキャラクターを表します â
(0xe2)、 €
(0x80)、および ™
(0x99)in Windows-1252.
だからあなたはただ忘れていたようです 出力文字を適切に指定します そのため、ブラウザは代わりにWindows-1252をエンコードするデフォルトの文字を使用します。
他のヒント
申し込み mysql_set_charset
PHPでUTF-8に。
データベースとアプリケーションが同じ文字エンコードを使用していることを確認してください。
バイナリで、 '
値は同一です ’
, 、したがって、エンコードが同じに設定されていることを確認する必要があります。
PHPアプリケーションでは、次の2行でこれを指定できます。
define(‘DB_CHARSET’, ‘utf8′);
define(‘DB_COLLATE’, ”);
これにより、アプリケーションがUTF-8文字セットを使用するように設定されます。これにより、データベースの照合と一致するようにする必要があります。問題はなくなります。
データベースの文字セットをプログラムで変更できます mysql_set_charset
働き。
所属していません StackOverflow