[解決済み] [Solved] 不正な文字列値: '\xEFxBFxBD' for column
質問事項
様々な文字を処理する必要があるテーブルがあります。その文字とは、Ø、® などです。
テーブルの照合順序をデフォルトのutf-8に設定し、すべての列でテーブルのデフォルトを使用するようにしましたが、これらの文字を挿入しようとするとエラーが発生します。Incorrect string value: '\xEFxBFxBD' for column 'buyerName' at row 1
私の接続文字列は次のように定義されています。
string mySqlConn = "server="+server+";user="+username+";database="+database+";port="+port+";password="+password+";charset=utf8;";
なぜまだエラーが出るのか、途方に暮れています。.netコネクタ、またはMySQLのセットアップのどちらかで何かを見逃してしまったのでしょうか?
--編集--
私の(新しい)C#のinsert文は次のようなものです。
MySqlCommand insert = new MySqlCommand( "INSERT INTO fulfilled_Shipments_Data " +
"(amazonOrderId,merchantOrderId,shipmentId,shipmentItemId,"+
"amazonOrderItemId,merchantOrderItemId,purchaseDate,"+ ...
VALUES (@amazonOrderId,@merchantOrderId,@shipmentId,@shipmentItemId,"+
"@amazonOrderItemId,@merchantOrderItemId,@purchaseDate,"+
"paymentsDate,shipmentDate,reportingDate,buyerEmail,buyerName,"+ ...
insert.Parameters.AddWithValue("@amazonorderId",lines[0]);
insert.Parameters.AddWithValue("@merchantOrderId",lines[1]);
insert.Parameters.AddWithValue("@shipmentId",lines[2]);
insert.Parameters.AddWithValue("@shipmentItemId",lines[3]);
insert.Parameters.AddWithValue("@amazonOrderItemId",lines[4]);
insert.Parameters.AddWithValue("@merchantOrderItemId",lines[5]);
insert.Parameters.AddWithValue("@purchaseDate",lines[6]);
insert.Parameters.AddWithValue("@paymentsDate",lines[7]);
insert.ExecuteNonQuery();
これがパラメトリックステートメントの正しい使用方法だと仮定すると、まだエラーが発生します。
"Incorrect string value: '\xEF\xBF\xBD' for column 'buyerName' at row 1"
他に何かアイデアはありますか?
解決方法は?
\xEF\xBF\xBD
は、ユニコード文字のUTF-8エンコーディング
U+FFFD
. これは特殊文字で、「置換文字」とも呼ばれます。引用元
unicodeの特殊文字に関するwikipediaのページ
:
置換文字�(黒い菱形に白いクエスチョンマークが多い)は、ユニコード標準では特殊文字表のコードポイントU+FFFDにある記号です。これは、システムがデータのストリームを正しいシンボルにデコードできない場合に、問題を示すために使用されます。これは、フォントが文字を含んでいない場合によく見られますが、データが無効でどの文字とも一致しない場合にも見られます。
つまり、あなたのデータソースには破損したデータが含まれているようです。また、間違ったエンコーディングでデータを読み込もうとした可能性もあります。この行はどこから来たのでしょうか?
もしデータを修正できず、入力に本当に無効な文字が含まれているのなら、置換文字を削除すればよいでしょう。
lines[n] = lines[n].Replace("\xFFFD", "");
関連
-
[解決済み】エラー。「戻り値を変更できません」 C#
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
[解決済み】バックスラッシュを含むパス文字列のエスケープシーケンスが認識されない件
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
VSでscanfエラーを恒久的に解決するには、ソースファイルを作成し、自動的に#define _CRT_SECURE_NO_WARNINGS 1を追加してください。
-
[解決済み】別のスレッドがこのオブジェクトを所有しているため、呼び出し側のスレッドはこのオブジェクトにアクセスできない
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み] リフレクションを使用して文字列からプロパティ値を取得する
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
-
[解決済み】MySQLデータベースに絵文字を格納する方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】パディングが無効で、削除できない?
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み] 'IEnumerable<SelectListItem>' 型の ViewData アイテムで、キーが国であるものは存在しない。
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】C#のequal to演算子でtextとvarcharのデータ型は互換性がない
-
[解決済み] 2つのリストを結合する
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】Unityでゲームオブジェクトのすべての子をループスルーして破壊する方法?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。