私は現在、フォーラムスパマーを捕獲するためにハニーポットを実行しています。データベースにラテン文字以外の文字を格納する際に問題が発生しました。データベースとテーブルレベルでutf8_unicode_ciを設定しました。 mysql_query( "SET NAMES 'utf8'")を実行して、情報がutf8として送信されることを確認します。mysqlデータベースに非ラテン文字を格納する際の問題
時間などの情報はintとして格納されます。 IP、ユーザー名などはVarcharとテキストとして保存されていますが、迷惑メールデータとの唯一の違いは、データを挿入する前にbase64_encode(htmlspecialchars())を使用し、スパム列が中間のBLOBに格納され、COMPRESS )をその列のクエリに追加します。
ラテン文字では正しいデータが返されますが、ロシア語やタイ語などのラテン文字以外の文字では正しいデータは返されません。例えば
:
Уровня конечного начальники или не
はとして返されます:
Ð£Ñ€Ð¾Ð²Ð½Ñ ÐºÐ¾Ð½ÐµÑ‡Ð½Ð¾Ð³Ð¾ начальнÐ
か、単にダイヤモンドをそれらの中に疑問符で。
私はフォーラムを作成したときにこの情報を正しく保存していましたが、正しく保管する方法を覚えていません。一日中検索していて、解決策を見つけることができませんでした私のために。
編集: もしあれば、追加情報。
- のApache/2.2.14(Ubuntuの)
- MySQLクライアントのバージョン:5.1.41
- PHPエクステンション:PHP5-mysqlの
あなたのウェブページにはどのようなエンコードがありますか?それはUTF-8ですか? –
utf8はメタタグで設定され、ヘッダー( "Content-Type:text/html; charset = utf-8")で設定します。 – Connorw600
問題のテーブルの 'CREATE'ステートメントを投稿できますか? –