有没有办法检测终端中调用我的Java程序的字符编码?在Windows中,我可以调用“chcp”工具并解析输出。
但是在Linux或Mac中呢?
答案 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操作系统上也是如此。环境变量只能在进程启动时继承。只需查看这些环境变量的值即可。
您真的希望人们在终端窗口打开时更改编码吗?我无法想象这是一个常见的用例。