我在某个地方遇到了一些我无法解决的编码问题。
我有下一个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设置为项目编码。
我看不出还会改变什么。我可能会遗漏一些东西,但我找不到它。
答案 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: