不正确的字符串值 - JOOQ - Java的
问题描述:
我试图上传CSV文件到我的MySQL数据库使用jooq如何我曾经得到以下error.I尝试了各种解决方案的净建议,但不能修复它不正确的字符串值 - JOOQ - 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
我如何我上传的CSV jooq
create.loadInto(Tables.TableName)
.onErrorIgnore()
.loadCSV(new File("/tmp/uploaded-files/" + fileName), "UTF-8").<fields>.execute();
我保证文件是UTF-8然而,当曾经有UTF-8字符的记录未能在DB保存及以上error.I投掷使用
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读它获取文件休息
InputStream inputStream = listingFilePart.getBody(InputStream.class, null);
,并传递给jooq
PrintWriter fop = new PrintWriter(new OutputStreamWriter(new FileOutputStream(file, true), StandardCharsets.UTF_8));
之前在本地系统递归编写文件
我将我的数据库设置为接受utf-8,并验证了相同的
答
我发现问题。问题是在ajax调用。 我需要发送字符集enctype
像
$.ajax({
type: "POST",
enctype: 'multipart/form-data;charset=UTF-8',
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);
}
});