如何检测Unix终端字符编码?

时间:2010-04-22 09:04:52

标签: java linux macos encoding console

有没有办法检测终端中调用我的Java程序的字符编码?在Windows中,我可以调用“chcp”工具并解析输出。

但是在Linux或Mac中呢?

2 个答案:

答案 0 :(得分:2)

查看locale(1)手册页

您可以通过设置LANG环境变量

来更改此设置
$ export LANG=en_US.iso88591

$ locale
LANG=en_US.iso88591
LC_CTYPE="en_US.iso88591"
LC_NUMERIC="en_US.iso88591"
LC_TIME="en_US.iso88591"
LC_COLLATE="en_US.iso88591"
LC_MONETARY="en_US.iso88591"
LC_MESSAGES="en_US.iso88591"
LC_PAPER="en_US.iso88591"
LC_NAME="en_US.iso88591"
LC_ADDRESS="en_US.iso88591"
LC_TELEPHONE="en_US.iso88591"
LC_MEASUREMENT="en_US.iso88591"

LC_IDENTIFICATION = “en_US.iso88591”

答案 1 :(得分:1)

从终端应用程序到终端窗口内运行的进程(没有被模拟的终端定义的进程,例如窗口大小更改)之间没有定义的通信路径。在任何其他类Unix操作系统上也是如此。环境变量只能在进程启动时继承。只需查看这些环境变量的值即可。

您真的希望人们在终端窗口打开时更改编码吗?我无法想象这是一个常见的用例。