gpt4 book ai didi

Java 错误地存储了西类牙语字符

转载 作者:行者123 更新时间:2023-12-01 18:00:41 27 4
gpt4 key购买 nike

我有一个 Java 应用程序正在加载一个 csv 文件,其中包含一些我需要导入到 MySQL 数据库中的内容。

问题是,对于某些西类牙语内容(例如 ñ 或 á é í ó ú),应用会返回:EL ESPA�OL

数据库默认集合是latin1 - 默认集合我也尝试将其更改为其他内容,例如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);
...
...

当我向后端发出请求时,我发送了以下 header :

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 上,然后......突然间,时髦的字符无处不在。

这可能在某些时候发生了变化,但在 Linux 和 OSX 上,JRE 以默认编码 UTF-8 开始。在 Windows 上,它使用系统代码页。对我来说是 cp1252 - 绝对不是国际的。

尝试将此系统属性打印到控制台,看看您是否遇到这种情况。

System.getProperty("file.encoding")

您可以像往常一样在启动时使用 -D 参数更改此值,例如

java -Dfile.encoding="UTF-8" -jar myJar.jar

...或者,正如 @ControlAltDel 所说,当您在流 API 中有选项时,请始终指定编码。

关于Java 错误地存储了西类牙语字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60638101/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com