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

发布于 2024-08-30 04:48:19 字数 95 浏览 3 评论 0原文

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

但在 Linux 或 Mac 上呢?

Is there a way to detect the character encoding set in the terminal which is calling my Java program? In Windows I can call the "chcp" tool and parse the output.

But what about in Linux or Mac?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

七月上 2024-09-06 04:48:19

检查 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"

Check the locale(1) man page

You can change this by setting the LANG environment variable

$ 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"

与风相奔跑 2024-09-06 04:48:19

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

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

There is no defined communication path from the terminal app to processes running inside a terminal window (short of those defined by the terminal being emulated, such as window size changes). This would be true on any other Unix-like OS as well. Environment variables can only be inherited when a process starts. Looking at the values of these environment variables is all you can do.

Do you really expect people to be changing the encoding while a terminal window is open? I can't imagine this is a common use case at all.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文