【发布时间】:2013-06-02 10:00:52
【问题描述】:
我正在使用 Eclipse IDE 用 java 编写程序,我想用希腊语编写我的 cmets。所以我将编码从 Window->Preferences->General->Content Types->Text->Java Source File 更改为 UTF-8。我的代码中的 cmets 没问题,但是当我运行我的程序时,一些单词包含奇怪的字符,例如 San Germ�n (San Germán)。如果我将编码更改为 ISO-8859-1,当我运行程序时一切正常,但我的代码中的 cmets 不是(奇怪的字符!)。那么,它出了什么问题呢?
编辑:我的程序在 java swing 中,带有 UTF-8 的奇怪字符是 JTable 单元格中的字符串。
EDIT(2): 好的,我解决了我的问题,我为 java 文件保留了 UTF-8 编码,但我更改了字符串的编码。 String k = new String(myStringInByteArray,ISO-8859-1);
【问题讨论】:
-
“圣日耳曼”在哪里?在评论中?在字符串文字中?在属性文件中?在文本文件中?
-
它在 JTable 的单元格中!(不在 cmets 中)
-
问题是:字符串从哪里来。 Is 在您的源代码中被硬编码为字符串文字,或者您是从文件中读取它,还是从数据库中读取它,然后再将其显示在您的 JTable 中。向我们展示您的源代码。
-
你确定这些字符是 UTF-8 吗?也许它们是 UTF-16。既然你找到了有效的编码,那就别管它了。
-
所以你是说你的Java源文件的编码改变了从数据库中读取的字符串在屏幕上的显示方式?这是非常令人惊讶的。最后,无论源文件的编码是什么,字节码都应该是相同的。 “读取数据库文件”是什么意思?我再说一遍:向我们展示你的源代码。
标签: java eclipse swing encoding utf-8