2010-04-22 22 views
1

有沒有辦法來檢測調用我的Java程序的終端中的字符編碼集?在Windows中,我可以調用「chcp」工具並解析輸出。如何檢測Unix終端字符編碼?

但是在Linux或Mac上呢?

+0

@Epage更新了我的回答 – stacker 2010-04-22 10:34:31

回答

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」

+0

總比沒有好...問題在於即使在更改終端編碼之後,區域設置也會提供相同的輸出......它只是爲新控制檯提供默認控制檯編碼... – Epaga 2010-04-22 09:20:36

1

有從終端沒有定義的通信路徑應用程序在終端窗口內運行的進程(在模擬終端定義的那些窗口(例如窗口大小更改)之外)。在任何其他類Unix操作系統上也是如此。環境變量只能在進程啓動時繼承。看看這些環境變量的值是你所能做的。

你真的希望人們在終端窗口打開時改變編碼嗎?我無法想象這是一個常見的用例。