Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
UTF-8编码不适用于Eclipse java应用程序_Java_Eclipse_Encoding_Utf 8_Locale - Fatal编程技术网

UTF-8编码不适用于Eclipse java应用程序

UTF-8编码不适用于Eclipse java应用程序,java,eclipse,encoding,utf-8,locale,Java,Eclipse,Encoding,Utf 8,Locale,我在某个地方遇到了一个无法解决的编码问题 我得到了下一个java文件: public class Main { public static void main(String[] args) { System.out.println("áéíàèì€aei"); } } 文件字符集编码是UTF-8,我正在使用Eclipse over Windows对其进行编辑和编译。编译完文件后,我将.class文件移动到Debian服务器,其字符集编码也是UTF-8,如下所示

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

我得到了下一个java文件:

public class Main {

    public static void main(String[] args) {
        System.out.println("áéíàèì€aei");
    }
}
文件字符集编码是UTF-8,我正在使用Eclipse over Windows对其进行编辑和编译。编译完文件后,我将.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,我通过在属性中单击鼠标左键并转到参考资料/text-file-encoding/Other:UTF-8,将UTF-8设置为项目编码


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

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


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

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

要永久更改编码,只需遵循以下答案-您可以在链接的注释中找到答案,但我不希望您错过它,因此它如下所示:

为了使这些变化在腻子中永久化,您打开腻子, 进行要保存的更改,然后单击会话上的“上一步” 窗口中,单击“保存的会话”下的默认设置,然后单击 点击保存。下次你打开腻子的时候,不管你之前换了什么 单击“保存”仍然有效


您是如何在debian上执行该命令的?它是通过SSH执行的吗?如果是这样,可能您的SSH客户端对UTF-8不友好。哎哟!是的,是宋承宪。也许这就是问题所在,但我不确定,因为在对同样运行在服务器上的mysql数据库执行查询时,我会遇到一些问题。我的意思是:mysql>从echeance中选择诽谤,其中诽谤类似于“%execution-Echéance Mois Mo+1%”;+-------------------------------------------------诽谤+---------------------------------------+第2期-执行-技术mois+10 | | TC 2-执行-技术mois+10 65%x2/12 |…感谢您的回答。事实上,shell正在显示这些字符:root@srv-dev:~áèíóúuáèèù@user1453418您尝试过在debian上编译和运行该文件吗?没有。我没有。这是因为我想减少一个更大的问题。有个开发人员需要使用Eclipse@windows编写一个应用程序,然后他需要在这个Debian服务器上部署它。我只需要设置环境,我刚刚发现了这个java编码问题。再次感谢朱纳德。显然一切都设置正确。root@srv-dev:~locale charmap UTF-8如果你想在问题中告诉我你在用油灰,你会马上得到答案。在这些事情上,精确性很重要。是的,你说得对。问题是我不认为油灰会成为问题,因为它显示了我输入的每个字符。这就是为什么我没有提到它。但同样重要的是,提供每一个细节。