アラビア語のテキストデータを含む大きなテキストファイルがあります。私はそれをMySQLテーブルにロードしようとすると、エラーがError code 1300: invalid utf8 character string
と表示されます。これまでに試したことです:mysqlで無効なutf8文字列をバイパスする方法
LOAD DATA INFILE '/var/lib/mysql-files/text_file.txt'
IGNORE INTO TABLE tblTest
FIELDS TERMINATED BY '\t'
LINES TERMINATED BY '\n';
私はこのエラーを無視しようとしましたが、動作しません。私はLOCAL INFILE
を試しましたが、うまくいきませんでした。私のデータベースはDEFAULT CHAR SET UTF8
とDEFAULT COLLATE utf8_general_ci
を使って作成されました。テキストファイルはutf-8
がエンコードされています。
無効なutf8文字を含むレコードは欲しくないです。どのように私はそのような無効な文字を含むレコードを無視してデータを読み込むことができますか?
ありがとうございます!
姿を消している、私は、例えば、任意の例外をキャッチして、そのような例外が発生したときに実行するアクションを決定'ValueError:continue'のように続きます。しかし、このテクニックがMySQLで利用可能かどうかはわかりません。 – Mohammed
'Update:' Python 'chars = {c for c textfile}'を使って、テキストファイルで利用可能なすべての文字をチェックしなければなりませんでした。私は 'regex'を使ってきれいにされたいくつかの奇妙な文字を見つけました。その後、 'MySQL load statement'はテキスト列の型として' utf-8'と 'text'を使って正常に動作しました。あなたの親切な助けに感謝してくれます。私は答えが受け入れられたものとしてマーキングしています。 – Mohammed