Java Unix 字符编码

标签 java unix character-encoding

我正在 Unix 上运行 Java 程序。为了简化问题,我只描述相关部分。

public static void main(String[] args) {  
    System.out.println("féminin");  
} 

我的输出是垃圾。这显然是字符编码问题,法语字符 é 未正确显示。我尝试过以下方法:

public static void main(String[] args) {  
    PrintStream ps = new PrintStream(System.out, true, "ISO-8859-1");  
    ps.println("féminin");  
} 

但是我的输出仍然显示?具有法国特色。
我在命令提示符下使用 java -Dfile.encoding=IBM437 DSIClient féminin
运行了相同的 efile 效果很好。但是如何解决 Unix 的字符编码问题呢?谢谢

最佳答案

问题很可能是您的代码编辑器和终端仿真器使用不同的编码,并且 Java 的默认编码概念也可能不同。

要查看您的终端和编辑器是否一致,您只需 cat 您的 java 源文件即可。 é 显示正确吗?如果是这样,您可以在源代码编辑器和终端中使用相同的编码,但这不是 Java 的默认编码。 OTOH,如果您看不到 é,您需要找出您的终端和编辑器使用的编码并使它们保持一致。

关于Java Unix 字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18955610/

相关文章:

c++ - URI 转义 C++ wstring

perl - 我可以在我的 Perl 程序中使用 POSIX 信号来创建事件驱动编程吗?

java - 使用排序随机播放流 - IllegalArgumentException

java - 为什么类型参数必须重复两次?

java - 将某些 Flink 操作优先于其他操作

linux - 如何在 Linux 中将天数转换为秒数

linux - 函数在脚本 shell 中不起作用

java - BufferedReader 返回 ISO-8859-15 字符串 - 如何转换为 UTF16 字符串?

pdf - 修复 PDF 编码

java - Seam:以编程方式将 s:decorate 设置为无效状态