測試代碼測試
1 public class Test { 2 3 public static void main(String[] args){ 4 5 String[] charsetNames={ 6 "UTF-8", 7 "UTF-16", 8 "UTF-16BE", 9 "UTF-16LE", 10 "UTF-32", 11 "UTF-32BE", 12 "UTF-32LE", 13 "UNICODE", 14 "GBK", 15 "GB2312", 16 "GB18030", 17 "ISO8859-1", 18 "BIG5", 19 "ASCII" 20 }; 21 22 23 for(int i=0;i<charsetNames.length;i++){ 24 printByteLength(charsetNames[i]); 25 } 26 27 } 28 29 /** 30 * String類的不帶參數的getBytes()方法會以程序所運行平臺的默認編碼方式爲準來進行轉換, 31 * 在不一樣環境下可能會有不一樣的結果,所以建議使用指定編碼方式的getBytes(String charsetName)方法。 32 */ 33 public static void printByteLength(String charsetName){ 34 String en="a"; //一個英文字符 35 String zh="啊"; //一箇中文字符 36 try { 37 System.out.println(charsetName+"編碼英文字符所佔字節數:"+en.getBytes(charsetName).length); 38 System.out.println(charsetName+"編碼中文字符所佔字節數:"+zh.getBytes(charsetName).length); 39 System.out.println(); 40 } catch (UnsupportedEncodingException e) { 41 System.out.println("非法編碼格式!"); 42 } 43 } 44 }
運行結果:編碼
UTF-8編碼英文字符所佔字節數:1 UTF-8編碼中文字符所佔字節數:3 UTF-16編碼英文字符所佔字節數:4 UTF-16編碼中文字符所佔字節數:4 UTF-16BE編碼英文字符所佔字節數:2 UTF-16BE編碼中文字符所佔字節數:2 UTF-16LE編碼英文字符所佔字節數:2 UTF-16LE編碼中文字符所佔字節數:2 UTF-32編碼英文字符所佔字節數:4 UTF-32編碼中文字符所佔字節數:4 UTF-32BE編碼英文字符所佔字節數:4 UTF-32BE編碼中文字符所佔字節數:4 UTF-32LE編碼英文字符所佔字節數:4 UTF-32LE編碼中文字符所佔字節數:4 UNICODE編碼英文字符所佔字節數:4 UNICODE編碼中文字符所佔字節數:4 GBK編碼英文字符所佔字節數:1 GBK編碼中文字符所佔字節數:2 GB2312編碼英文字符所佔字節數:1 GB2312編碼中文字符所佔字節數:2 GB18030編碼英文字符所佔字節數:1 GB18030編碼中文字符所佔字節數:2 ISO8859-1編碼英文字符所佔字節數:1 ISO8859-1編碼中文字符所佔字節數:1 BIG5編碼英文字符所佔字節數:1 BIG5編碼中文字符所佔字節數:2 ASCII編碼英文字符所佔字節數:1 ASCII編碼中文字符所佔字節數:1