2011-02-08 28 views
2

私たちのデータベースでマングルされていて、UTF8以外の文字を含む行をすべて選択しようとしています...これは正規表現で一番ですか?UTF8以外の文字を含むすべての行を選択する

現在、私は「% '%'」と似ていますが、かなりうまく動作しますが、100%ではありません。 (REGEXP '(\ S + [^ A-Za-z0-9] +)'))。しかし、この正規表現は大したことではありません。後者は、出て取得するのに十分簡単で最良のルートはRegexかどうかわからないです。

例の行が選択されていない、そのような「DIA©」、「yücel」と「GRA¥バーグ」などの文字が含まれていました。

感謝

答えて

0

SQLクエリーでこれを表現できるかどうかはわかりませんが、データベース全体を反復して、各行が有効なUTF-8データであるかどうかを確認して、私はPHPが "これらのバイトがvaかどうかを見るための既成の関数があるかどうかはわかりませんlid UTF-8 "がありますが、Pythonはこれを認識しています。私はある時点で、これと同じ問題を抱えていたので、これを行うプログラムを書いた。 (私はソースコードを持っていません、ごめんなさい)

注意:ISO-8859-1として誤って保存され、エンコードされた文字列も有効なUTFである可能性はありますが、 -8文字列。

私はMySQLが文字列をどのように処理するのかは知らないけど、MySQLはUTF-8以外の文字列をUTF-8データベースに挿入できるようにしていますか? (PostgreSQLでは、UTF-8データベースでこれを行うことはできません)

+0

ありがとうございます。私は現在、データベース全体を選択し、PHPを使用してすべてのUTF8行を表示しています。これは私が望むよりもはるかに多くのデータを意味しますが、エラーが発生する可能性があるすべての単一の行を確認しています。それは私が使用したここからのFixUTF8スクリプトでした.. http://stackoverflow.com/questions/1401317/remove-non-utf8-characters-from-string – elyob

関連する問題