2011-10-29 18 views
0

私は現在、フォーラムスパマーを捕獲するためにハニーポットを実行しています。データベースにラテン文字以外の文字を格納する際に問題が発生しました。データベースとテーブルレベルで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の
+0

あなたのウェブページにはどのようなエンコードがありますか?それはUTF-8ですか? –

+0

utf8はメタタグで設定され、ヘッダー( "Content-Type:text/html; charset = utf-8")で設定します。 – Connorw600

+0

問題のテーブルの 'CREATE'ステートメントを投稿できますか? –

答えて

1

ページは私からのスパム投稿を送信していることが判明メインハブへのドメインにはheader("Content-Type: text/html; charset=utf-8");がありませんでした。そのため、ページにクエリが作成されたときに、そこに壊れていました。

関連する問題