Java不一樣編碼方式,中英文字符所佔字節數

有人說Java中中文字符佔2個字節,也有人說佔3個字節,甚至還有人說佔4個字節;css

有人說Java中英文字符佔1個字節,也有人說佔2個字節,甚至還有人說佔4個字節;java

那麼到底誰說的對?個人回答是都沒錯,具體要看是什麼編碼方式。紙上得來終覺淺,絕知此事要躬行,我編寫了下邊的代碼,運行輸出的結果就是答案。編碼

代碼以下:spa

public class Test {

    public static void main(String[] args){
        
        String[] charsetNames={    
                                    "UTF-8",
                                    "UTF-16",
                                    "UTF-16BE",
                                    "UTF-16LE",
                                    "UTF-32",
                                    "UTF-32BE",
                                    "UTF-32LE",
                                    "UNICODE",
                                    "GBK",
                                    "GB2312",
                                    "GB18030",
                                    "ISO8859-1",
                                    "BIG5",
                                    "ASCII"
                               }; 
        
        
        for(int i=0;i<charsetNames.length;i++){
            printByteLength(charsetNames[i]);
        }

    }
    
    /** * String類的不帶參數的getBytes()方法會以程序所運行平臺的默認編碼方式爲準來進行轉換, * 在不一樣環境下可能會有不一樣的結果,所以建議使用指定編碼方式的getBytes(String charsetName)方法。 */
    public static void printByteLength(String charsetName){
        String en="a";    //一個英文字符
        String zh="啊";    //一箇中文字符
        try {
            System.out.println(charsetName+"編碼英文字符所佔字節數:"+en.getBytes(charsetName).length);
            System.out.println(charsetName+"編碼中文字符所佔字節數:"+zh.getBytes(charsetName).length);
            System.out.println();
        } catch (UnsupportedEncodingException e) {
            System.out.println("非法編碼格式!");
        }
    }
}
複製代碼

運行結果:code

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複製代碼
相關文章
相關標籤/搜索