Java 为什么是ñ;更改为ñ;?

Java 为什么是ñ;更改为ñ;?,java,unicode,Java,Unicode,我不明白当我保存任何包含ñit的字符串时,它会变为ñ。即使在数据库中,ñ也改为ñ 示例: ñ变成ñ 尼诺变成了尼诺 我不知道是什么导致了这个问题,也不知道问题是从哪里来的。请帮忙。提前感谢。您的字符串编码错误。它是UTF-8,但你需要其他的,嗯,拉丁-1? 你需要解码 检查 希望对您有所帮助。这是一个字符编码问题,您需要检查从写入到读取的整个堆栈是否设置为UTF-8 看看这个,它可能包含一些帮助您的信息:当然是字符编码问题。确保数据库、网页、内容字符集、java文件、字符串编码等都使用

我不明白当我保存任何包含ñit的字符串时,它会变为ñ。即使在数据库中,ñ也改为ñ

示例:

  • ñ变成ñ
  • 尼诺变成了尼诺

我不知道是什么导致了这个问题,也不知道问题是从哪里来的。请帮忙。提前感谢。

您的
字符串
编码错误。它是UTF-8,但你需要其他的,嗯,拉丁-1? 你需要解码

检查


希望对您有所帮助。

这是一个字符编码问题,您需要检查从写入到读取的整个堆栈是否设置为UTF-8


看看这个,它可能包含一些帮助您的信息:

当然是字符编码问题。确保数据库、网页、内容字符集、java文件、字符串编码等都使用完全相同的编码-例如UTF-8。

字符
ñ
(U+00F1)使用UTF-8作为两个字节
11000011 10110001
0xC3 0xB1
)进行编码

这两个字节使用ISO 8859-1作为两个字符进行解码


因此,您最有可能使用UTF-8将字符编码为字节,使用ISO 8859-1(Sajmon猜测为拉丁语-1)将字节解码为字符。

是的,它是UTF-8。所以你是说这就是问题的来源?我怀疑这是数据库问题,因为“甚至在数据库中…”;检查插入的实际值可能会证实/反驳这一点。数据库可能不是UTF-8。我是否可以好奇一下,你是如何计算出二进制编码的/你使用的是哪种源代码?@Philippe:我使用了UTF-8的标准定义。维基百科有一个很好的页面