Javaで文字コードと文字列が占めるバイト数をどのように計算するか.

1220 ワード

異なる符号化バイト数が異なる【以下に一般的な3種類の符号化形式を列挙する】:
  • GBK:漢字1文字が2バイト、アルファベット1文字が1バイト、オペレータ1バイト.
  • UTF-8:1つの漢字は3バイトに等しく、中国語句号'.3バイトに等しく、1文字が1バイトに等しく、英語の句点'.'1バイト
  • に等しい
  • Unicode:1つの漢字が4バイトに等しく、いずれも2バイトに等しい【英語、数字、オペレータ[.,%,&]などのね】
  • public static void main(String[] args) {
    	//          
    	String encoding = System.getProperty("file.encoding");
    	System.out.println("    :" + encoding);
    	try {
    		String str = "   abc";
    		int len = str.getBytes().length;
    		System.out.println("1.            :" + len);
    
    		len = str.getBytes("GBK").length;
    		System.out.println("2.GBK      :"+ len);
    
    		len = str.getBytes("UTF-8").length;
    		System.out.println("3.UTF-8      :" + len);
    
    		len = str.getBytes("Unicode").length;
    		System.out.println("4.Unicode      :" + len);
                   /*
                   *     :UTF-8
                   * 1.            :5
                   * 2.GBK      :4
                   * 3.UTF-8      :5
                   * 4.Unicode      :8
                   */
    
    	}  catch ( java.io.UnsupportedEncodingException e)  {                  
                System.out.println(e.getMessage().toString());  
    	} 
    }