[英]XDocReportRegistry.getRegistry() works fine through eclipse, but doesn't work in a third party app
[英]My app with utf8 works fine in eclipse but it doesn't in terminal
我有一個使用Java
開發的應用程序。 當我在Eclipse
測試它時,它可以完美運行。 每個字符都是完美的,但是當我編譯並導出jar並使用OS X終端對其進行測試時,奇怪的字符(我是西班牙語)是錯誤的。 他們是一個“?”。
我想我到處都使用UTF-8
,所以我不知道該怎么辦。
謝謝
最有可能的是,您並沒有在所有地方都使用UTF-8,而是有一些默認使用平台編碼的代碼(反過來,可以由環境變量來設置,而Eclipse之間可能會有所不同,在Eclipse中,它被設置為與工作區文件編碼和您的外殼)。
確保在代碼中的所有字符轉換(例如打開閱讀器)中都明確將“ UTF-8”作為字符集。
例如,不要使用
Reader r = new FileReader("a.txt");
采用
Reader r = new InputStreamReader(new FileInputStream("a.txt"), "UTF-8");
如果這不可能,則短期解決方案是設置適當的環境變量或系統屬性(我認為-Dfile.encoding=UTF-8
)。
在終端上使用locale
命令檢查您的語言locale
。 打印的字符串應包含.UTF-8
, .utf8
或類似的后綴。 如果不是,則您使用的是非UTF-8語言環境,並且應用程序的輸出無法正確顯示。 我不確定哪種語言環境可用,但是您可以在運行應用程序之前嘗試運行export LC_ALL=es_ES.UTF-8
,並檢查是否有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.