UTF-8编码不能与Eclipse java应用程序一起使用

时间:2013-10-02 15:44:34

标签: java eclipse encoding utf-8 locale

我在某个地方遇到了一些我无法解决的编码问题。

我有下一个java文件:

public class Main {

    public static void main(String[] args) {
        System.out.println("áéíàèì€aei");
    }
}

文件字符集编码是UTF-8,我在Windows上使用Eclipse来编辑和编译它。编译好文件之后,我将.class文件移动到Debian服务器,它的字符集编码也是UTF-8,如下所示:

root@srv-dev:~# locale
LANG=fr_FR.UTF-8
LANGUAGE=
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"
LC_ALL=fr_FR.UTF-8

当我运行应用程序时,我得到了:

root@srv-dev:~# java Main
áéíàèìâ¬aei

我是Eclipse,我通过左键单击属性并转到资源/文本文件编码/其他:UTF-8,将UTF-8设置为项目编码。

我看不出还会改变什么。我可能会遗漏一些东西,但我找不到它。

2 个答案:

答案 0 :(得分:2)

问题与油灰配置有关。它将远程字符集设置为ISO-8859-1。

我猜测mysql查询结果显示重音的原因是因为它也使用了ISO-8859-1字符集。要配置putty,只需按照下一个链接:

Configuring PuTTY to use UTF-8

要永久更改编码,只需按照此答案进行操作即可在链接的评论中找到,但我不希望您错过它,所以这里是:

  

“为了让这些变化在Putty永久化,你打开了Putty,   进行要保存的更改,然后单击“会话”   窗口,单击“已保存的会话”下的“默认设置”,然后单击   点击“保存”。下次你打开Putty之前你改变了什么   点击保存仍然有效。“

答案 1 :(得分:1)

用于运行java文件的控制台/ shell也需要启用UTF-8编码,否则将无法正确显示字符。按照以下链接中提到的步骤在debian shell上启用UTF-8:

http://jaysonlorenzen.wordpress.com/2009/01/16/set-up-a-debian-linux-machine-to-handle-utf-8-in-a-shell-or-console-app/