簡體   English   中英

我的帶有utf8的應用程序在Eclipse中可以正常工作,但在終端中卻無法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM