簡單小記,字串(String)因為任何理由要轉換成位元組(byte array)時,最好要指定編碼
否則在 Java 中,預設會以系統編碼來處理,就容易產生中文亂碼的問題。
String s = "some text here"; byte[] b = s.getBytes(CharSet.forName("UTF-8")); s = new String(b, CharSet.forName("UTF-8"));
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
簡單小記,字串(String)因為任何理由要轉換成位元組(byte array)時,最好要指定編碼
否則在 Java 中,預設會以系統編碼來處理,就容易產生中文亂碼的問題。
String s = "some text here"; byte[] b = s.getBytes(CharSet.forName("UTF-8")); s = new String(b, CharSet.forName("UTF-8"));
簡單的小問題~AMI 預設好像內建 Java 1.7,要更新成 1.8 的話,可以用以下的 YUM 指令。
sudo yum install java-1.8.0 sudo yum remove java-1.7.0-openjdk
其中要特別把 1.7 移除掉,是因為單純安裝 1.8 的話,預設 java 指令還是會呼叫 1.7。