Java错误地存储了西班牙语字符
我有一个Java应用程序,它正在加载一个csv文件,其中包含一些我需要导入MySQL数据库的内容 问题在于,对于像尼奥雷奥这样的一些西班牙语内容,应用程序会返回:Java错误地存储了西班牙语字符,java,mysql,Java,Mysql,我有一个Java应用程序,它正在加载一个csv文件,其中包含一些我需要导入MySQL数据库的内容 问题在于,对于像尼奥雷奥这样的一些西班牙语内容,应用程序会返回:EL ESPA�OL 数据库默认集合是latin1-defaultcollection我也尝试将其更改为其他集合,如utf8,但结果总是一样的 导入文件的方式是: BufferedReader br = new BufferedReader( new InputStreamReader(new F
EL ESPA�OL
数据库默认集合是latin1-defaultcollection
我也尝试将其更改为其他集合,如utf8,但结果总是一样的
导入文件的方式是:
BufferedReader br = new BufferedReader(
new InputStreamReader(new FileInputStream(file)));
System.out.println("*** Importing file **** " + file);
try {
String line;
int i = 0;
while ((line = br.readLine()) != null) {
final String[] parts = line.split(",");
if(parts != null && parts.length > 0 && !parts[0].equalsIgnoreCase("")){
System.out.println("Line: " + i++ + " Text: " + line);
...
...
当我向后端发出请求时,我发送了以下标题:
accept: application/json
accept-encoding: gzip, deflate, br
accept-language: es-419,es;q=0.9,en;q=0.8
content-type: application/json
尝试的事项:
重新创建/修改表格排序规则
默认排序规则只是一个默认值。除非指定排序规则,否则新表将采用当前的默认值
如果不重新创建或修改现有表,它们将保持用latin1
编码
检查您的JRE代码页
你在Windows上运行吗?您的JRE默认代码页设置为什么
我已经有一段时间没有接触Java了,但我过去在使用多字节字符时遇到了可怕的问题,因为我会在Linux上开发,并将代码传输到Windows和。。。突然,时髦� 到处都是chars
这可能在某些时候发生了变化,但在Linux和OSX上,JRE以默认编码UTF-8开始。。在Windows上,它使用系统代码页。这对我来说是cp1252——显然不是国际性的
请尝试将此系统属性打印到控制台,以查看您是否遇到这种情况
System.getProperty(“file.encoding”)
您可以像往常一样,在启动时使用-D
参数更改此值,例如
java-Dfile.encoding=“UTF-8”-jar myJar.jar
。。。或者,正如@ControlAltDel所说,当您在流API中有选项时,请始终指定编码。尝试使用新的InputStreamReader(新文件InputStream(file),“utf-8”);