无法在基于java的程序中正确编写重音符号(西班牙语)

无法在基于java的程序中正确编写重音符号(西班牙语),java,character-encoding,Java,Character Encoding,我试着在更一般的论坛上问这个问题,因为它与编程没有直接关系,但我找不到答案,所以我来了 当我试图在每一个基于Java的程序中使用死键方法(西班牙语键盘中的常用方法,按‘,然后按元音组合它们)键入重音字符时,不是由我制作的,比如Netbeans、Eclipse或从internet下载的任何.jar,它不会写重音。当我按两次´键时,它会写入´´´,而不是´´,这是正常的行为 我可以“写”重音字符,因为我可以从记事本上复制它们,但我不能用常用的死键方法直接键入它们 语言栏中显示的输入语言是西班牙语,与

我试着在更一般的论坛上问这个问题,因为它与编程没有直接关系,但我找不到答案,所以我来了

当我试图在每一个基于Java的程序中使用死键方法(西班牙语键盘中的常用方法,按‘,然后按元音组合它们)键入重音字符时,不是由我制作的,比如Netbeans、Eclipse或从internet下载的任何.jar,它不会写重音。当我按两次´键时,它会写入´´´,而不是´´,这是正常的行为

我可以“写”重音字符,因为我可以从记事本上复制它们,但我不能用常用的死键方法直接键入它们

语言栏中显示的输入语言是西班牙语,与其他地方一样,按键的布局是正确的

我尝试重新安装JRE并查找恶意软件,但没有结果


我使用的是Windows XP,JRE版本是1.6.0_26-b03,尽管它在我之前的版本中也不起作用。

Java代码需要是UTF-8。如果使用unicode
\unnn
对字符进行编码,则可以使用任何unicode字符

下面是您将如何对示例进行编码:

    String spanish = "\u00E1\u00E9\u00ED\u00F3\u00FA";
    System.out.println(spanish); // prints áéíóú

这在Eclipse中正常工作/编译。

进入控制面板->区域选项->语言->[详细信息]->[语言栏]并切换“在桌面上显示语言栏”选项,这样您就可以查看Java程序处理键盘输入的方式是否与其他程序不同

有多种方法可以使用AltGr+各种字符输入重音键,也可以使用`作为死键(即按`后跟字母组合重音字符)

您还可以尝试在键盘上使用Alt+数字代码,这可能需要更长的时间来键入,但要比将所有内容转换为unicode代码点并使用转义序列插入字符串容易得多

alt代码有多种参考,这里只有一种是从Google中摘取的:

这个问题不会发生在我的程序中,它会发生在用Java编写的每个程序中,甚至是那些不是我自己编写的程序,比如Netbeans或Eclipse。例如,如果我试图写以下评论://Este método sirve para。。。我得到://Este metodo sirve para…看在上帝的份上,用户不知道\u00E1,所以他或她输入了一个非unicode字符,然后你将如何解决它?@searlea它显示西班牙语输入,就像其他地方一样。“有多种方法可以使用AltGr+各种字符输入重音键,或者使用`作为死键(即按`后接字母组成重音字符)。”死键是我遇到的问题,它在其他任何地方都能正常工作,在java程序中也能正常工作。我通常会在记事本上键入所需内容,然后将其复制到java程序中,但这真的很烦人,让我浪费了很多时间。请在寻找问题解决方案时启用语言栏。您可能会发现Java程序的输入方法正在改变-例如,您的常规键盘美国国际Java程序键盘…西班牙语键盘上有5个死键,')、`、()和^。它们都不能正常工作,但只有`和¨在西班牙语中实际使用。(撇号:',西班牙语口音:')看起来Java bug数据库中有几个与口音和死键相关的bug。可能值得搜索Oracle的Java bug数据库和/或记录一个问题。搜索bug数据库(),您会发现几个条目,如(即搜索“死键”,或简单地搜索“重音”等)