2017-04-14 18 views
5

をインポートする場合:MySQLの無効なUTF8文字列で、私はMySQLデータベースへ.csvファイルをインポートするCSVテーブル

load data local infile 'C:\\Users\\t_lichtenberger\\Desktop\\tblEnvironmentLog.csv' 
into table tblenvironmentlog 
character set utf8 
fields terminated by ';' 
lines terminated by '\n' 
ignore 1 lines; 

.csvファイルには、次のようになります。 enter image description here

しかし、私は取得しています次のエラーが表示され、理由を説明できません:

Error Code: 1300. Invalid utf8 character string: 'M' 

お勧めはありますか?

+0

EXPORT_ _on設定した何? –

答えて

5

輸出の設定が何であったかを参照してください。 「UTF-8」を探します。

Thisは、「切り詰められたテキスト」がデータがutf8mb4としてエンコードされていないことが原因であることを示しています。 (内部では、MySQL、utf8、utf8mb4はすべてのヨーロッパの文字セットで同じように機能するので、üは問題ありません)

"cp1252"としてエクスポートされた場合は、 (または符号化のうちのいずれか)、üのバイトは切り捨てにつながる、utf8mb4に対して有効ではないであろう

この分析が正しい場合、2つの解決策があります。

プランA:UTF-8をとしてエクスポート

プランB:latin1としてインポートしてください(あなたは列/テーブル定義を変更するには、LOAD DATAだけを入力します。)

1

'M'については文句を言っていますが、それはMünchenにあり、実際に問題のある文字は、ウムラウト'ü'です。

テストする簡単な方法の1つは、最初の2行だけをロードすることです。&これが機能するかどうかを確認してください。その後、3行目を追加して、もう一度試してください。&これが失敗するかどうかを確認してください。

これらの特殊文字をデータに置き換えることができない場合、またはCSVファイル、データベース、テーブル、列、ツールなどで設定された文字セットの調査を開始する必要があります。

MySQL 5.7以上を使用していますか?次に、あなたのload dataコマンドでcharacter set utf8mb4に変更してみてください。

同様の問題については、How MySQL 5.7 Handles 'utf8mb4' and the Load Data Infileを参照してください。

も参照してください:

import geonames allCountries.txt into MySQL 5.7 using LOAD INFILE - ERROR 1300 (HY000)

Trouble with utf8 characters; what I see is not what I stored

“Incorrect string value” when trying to insert UTF-8 into MySQL via JDBC?

1

はちょうどあなたのcsvファイル[インポート(

)++ NodepadなどのテキストエディタでCSVファイルを開き、UTF-8

にファイルのエンコーディングを変更

関連する問題