0
はネット上で示唆したが、不正な文字列値 - JOOQ - 私はerror.I以下になっていますどのようにこれまでjooq使用してdbが私のmysqlにcsvファイルをアップロードしようとしていたJava
Error: org.jooq.exception.DataAccessException: SQL [insert into `Test`.`testtable` <mydata> Incorrect string value: '\xEF\xBF\xBD15 ...' for column 'colum_Name' at row 1
どのようにそれを修正カント様々なソリューションを試してみましたこれまでにUTF-8文字のレコードがDBに保存することができないとerror.Iの上に投げているがある場合、私は、ファイルがしかし、UTF-8であることを確認
create.loadInto(Tables.TableName)
.onErrorIgnore()
.loadCSV(new File("/tmp/uploaded-files/" + fileName), "UTF-8").<fields>.execute();
をjooqするCSVファイルをアップロードしていますと、
file -i <filename>
を使用して確実に
フロントエンドのAjax:
$.ajax({
type: "POST",
enctype: 'multipart/form-data',
url: fileUploadUrl,
data: dataforFileUpload,
processData: false,
contentType: false,
cache: false,
timeout: 600000,
success: function (message) {
console.log(message);
alert(message);
console.log("upload done "+ new Date());
},
error: function (e) {
console.log("ERROR : ", e.responseText);
alert("ERROR : "+ e.responseText);
}
});
私はJavaの残り
PrintWriter fop = new PrintWriter(new OutputStreamWriter(new FileOutputStream(file, true), StandardCharsets.UTF_8));
をjooqに渡す前に
InputStream inputStream = listingFilePart.getBody(InputStream.class, null);
とローカルシステムに再帰的にファイルの書き込みを経由して、それを読んで私のフロントエンドからファイルを取得しています
utf-8を受け入れるように自分のDBを設定し、同じことを確認しました