3

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

我有下一个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 设置为项目编码。

我看不出我还能改变什么。有些东西我可能会丢失,但我找不到。

4

2 回答 2

2

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

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

将 PuTTY 配置为使用 UTF-8

要永久更改编码,只需按照这个答案 - 你实际上会在链接的评论中找到它,但我不希望你错过它,所以它是:

“为了使这些更改在 Putty 中永久生效,您打开 Putty,进行要保存的更改,然后单击返回会话窗口,单击已保存会话下的“默认设置”,然后单击保存。下一步打开 Putty 时,在单击保存之前所做的任何更改仍然有效。”

于 2013-10-03T08:24:14.240 回答
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/

于 2013-10-02T15:56:36.193 回答