2017-06-21 2 views
2

マイ輸入クエリが通過プッシュしていないダンプ。 "#1366 - 不正な文字列値: '\ xDA ????? ...'列 'Description' in row 1"varcharデータ型は、データから文字を受け付けない私のデータ・ダンプである特別な漢字は、コマンドに干渉するため

説明フィールドは現在、長さが(5000)のvarchar型です。 。この問題の原因は何と思いますか?ダンプの内容におそらく問題はありますか?このvarcharデータ型と互換性のない特殊文字はありますか?このための回避策または修正がありますか?

+0

間違ったエンコーディングがどこかにあります:ファイルはあなたが考えるエンコーディングを持っていない、あなたの接続は正しいエンコーディングで確立されていない、テーブル/列が間違ったエンコーディングに設定されている...あなたは何を言及していないので、あなたのエンコーディングが使用されているはずですが、おそらくあなたはすべてのデフォルト値を持つインポートを実行しているだけです。 –

+0

ファイルは、私がcsvとして保存したxlsファイルです。 phpmyadminコンソールを使用してインポートしました。したがって私は思っているデフォルトのエンコーディングを使用しています。私はnvarcharを使用してみましたが、そのためのオプションはありません。私はutf8mb4に "照合"またはそのフィールドのエンコーディングを編集しようとしましたが、もしうまくいけばわかりません。 –

+0

エンコードの問題を解決する簡単な方法の1つは、HxDエディタなどでファイルを開き、手動でボーム文字を取り除くことです。そうしないと、あなたはLibreOfficeの中でXLSからCSVにエクスポートする場合は、エンコーディングを選択するダイアログを取得し、あなたが – MiloBellano

答えて

0

問題の更新のみ。私は実際には、標準のメモ帳だけを使用してcsvファイルの文字エンコーディングをutf8に変換することで修正できました。テーブルとデータベースのデフォルトをutf8に変更しました。その後、データ型の長さを少し変更するだけで、データを完全にインポートすることができました。あなたの提案をありがとう。

1

あなたは代わりにvarchar型のnvarchar型を使用して、入力されたデータは、データベースと同じエンコーディングであることを確認する必要があります。

EDIT:ちょうどmysqlのタグに気づきました。あなたの列宣言に "文字セットutf8"を使用する必要があります。

+0

MySQLでは、 'NVARCHAR'は' VARCHAR'の 'utf8'エンコーディングのエイリアスです(昨日それを学んだだけで、実際に試したことはありません)。 –

+0

phpmyadminを使って試しましたが、nvarcharオプションが利用できないようです。 –

関連する問題