我正在尝试使用 Java 文件从数据库中检索一些 UTF-8 uni 编码的汉字。当我这样做时,字符将作为问号返回。
但是,当我显示数据库中的字符(使用select * from ...
)时,字符会正常显示。当我在由汉字组成的Java文件中打印字符串时,它们也可以正常打印。
我在 Eclipse 中遇到了这个问题:当我运行程序时,字符被打印为问号。但是,当我以 UTF-8 格式保存 Java 文件时,这个问题就解决了。
在终端中运行“locale”当前会返回:
LANG="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_CTYPE="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_ALL=
我还尝试使用以下方法编译我的 java 文件:
javac -encoding UTF-8 [java file]
但是,输出仍然是问号。
奇怪的是它有时只会显示字符。有人对此有解释吗?或者更好的是,如何解决这个问题以便正确显示字符?