今天碰到一箇中文亂碼的問題:收到客戶端的消息後,服務器進行了處理以後顯示在瀏覽器裏面是亂碼。java
檢查一遍代碼,裏面發現服務器端在解析消息的時候用了String的getBytes()方法,可是沒有明確的指定字符編碼。shell
這是亂碼產生的一個根源。瀏覽器
咱們遵循的思路就是在消息的產生,處理,顯示整個一條路上都用UTF-8。這種基本思路能夠保證多語言環境下不會產生亂碼。服務器
getBytes()默認會調用系統的編碼格式,若是咱們的java程序沒有指定,那就會用操做系統的。操做系統的編碼方式就比較雜亂了。編碼
一種解決問題的辦法就是在咱們java程序啓動的時候指定編碼格式:spa
$JAVA_HOME/bin/java
-Dfile.encoding=UTF-8 \ -Dsun.jnu.encoding=UTF-8 \ -jar OurApp.jar
以此來保證服務器端的處理都是UTF-8的天空下進行。操作系統