[英]Parse csv file with special character like µ using java
我有一種情況,我必須閱讀一個 CSV 文件,其中包含像“μ”這樣的特殊字符。 這必須使用 java 來完成。 我在做: BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(new FileInputStream(,"UTF-8"));
在 windows 中運行正常。 但在 redhat linux 環境中,它會將這些特殊字符轉換為“?”。 非常感謝任何幫助
寫入System.out
的 Output 將使用“平台默認編碼”進行編碼,該編碼在 linux 上由語言環境變量確定(參見locale
或用戶系統級配置文件)。
在服務器安裝上,默認編碼通常是ASCII
。 "µ" 不是 ASCII 字符,所以它會被轉換為 "?" 打印時。
有幾種方法可以更改默認編碼:
運行程序時設置 Java file.encoding
系統屬性,例如
java -Dfile.encoding=utf-8 yourprogram
在運行程序之前設置 LC_CTYPE 環境變量,例如:
export LC_CTYPE=en_US.UTF-8 java yourprogram
這些方法還會更改輸入和文件名等的默認編碼。您可以使用 Java 代碼專門為System.out
更改編碼:
PrintStream originalOut = System.out; // in case you need it later System.setOut(new PrintStream(System.out, true, "utf-8"));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.