私は現在、フォーラムのスパム送信者を捕まえるためにハニーポットを実行しています。データベースに非ラテン文字を保存する際に問題がありました。データベースとテーブル レベルで utf8_unicode_ci を設定し、mysql_query("SET NAMES 'utf8'") を使用して作成しています。情報がutf8として送信されていることを確認してください。
時刻などの情報は int として格納されます。IP、ユーザー名などは Varchar およびテキストとして保存されます。スパム データとの唯一の違いは、データを挿入する前に base64_encode(htmlspecialchars()) を使用することと、スパム列が中程度の BLOB に保存され、COMPRESS( を使用することです。 ) をその列のクエリで使用します。
ラテン文字では正しいデータが返されますが、ロシア語やタイ語などの非ラテン文字では正しいデータが返されません。
例えば:
Уровня конечного начальники или не
次のように返されます。
Ð£Ñ€Ð¾Ð²Ð½Ñ ÐºÐ¾Ð½ÐµÑ‡Ð½Ð¾Ð³Ð¾ начальнÐ
または、疑問符が付いたひし形だけです。
何年も前にフォーラムを作成したとき、この情報を正しく保存することができましたが、どのようにして正しく保存したか思い出せません。
編集:助けがあれば追加情報。
- アパッチ/2.2.14 (Ubuntu)
- MySQL クライアントのバージョン: 5.1.41
- PHP 拡張機能: php5-mysql