国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
JAVA里字符編碼 - Java - linxh
JAVA里字符編碼
 
   JAVA為了國際通用,用的是UNICODE來保存里面的字符。而UNICODE只是一個(gè)種字符集,字符的存儲(chǔ)和表示要用到一定的字符編碼格式,而與UNICODE對應(yīng)的字符編碼格式就是我們常看到的UTF-8,UTF-16等等,而UTF-8是最常用的,所以人們常常把它和UNICODE等同起來,這在某些情況下是沒有錯(cuò)的,但這樣的理解在JAVA里就會(huì)產(chǎn)生一些混淆。用下面的程序來演示一下。

定義一個(gè)字符串

     String name = "堂";

這個(gè)字符串就一個(gè)字符,把它取出來

     char c_name = name.charAt(0);

JAVA里的char型是十六位的(兩個(gè)字節(jié)),但是如果是用UTF-8的話可能會(huì)不只兩位(UTF-8是變長存儲(chǔ)的),那看來JAVA本身并不是用UTF-8來保存的,做個(gè)實(shí)驗(yàn)吧。

首先看看char里保存的內(nèi)容

int low = (c_name) & 0xff;//取c_name的低位
int high = (c_name >> 8) & 0xff;//取c_name的高位

System.out.println(Integer.toHexString(high) + " " + Integer.toHexString(low));

結(jié)果是58 02

只有兩個(gè)字節(jié)而已(16位),那么真正的UTF-8編碼的內(nèi)容是什么呢,再看看吧。

下面是一個(gè)輔助方法printbyte,作用是把一個(gè)byte數(shù)組的每個(gè)元素按照十六進(jìn)制格式打印出來,同樣為了方便,作為靜態(tài)方法。 

public static void printbyte(byte[] bt)
{
    for (int i = 0; i < bt.length; i++) {
        
        int hex = (int)bt[i] & 0xff;
        System.out.print(Integer.toHexString(hex) + " ");
    }
    System.out.println(" length = "+bt.length);
}

byte[] utf_8 = name.getBytes("utf-8");
printbyte(utf_8);

結(jié)果是e5 a0 82   length = 3

哇,三個(gè)字節(jié)!看來JAVA內(nèi)部用的真不是UTF-8,那用的是什么呢?UTF-16?看一下便知。

     byte[] utf_16 = name.getBytes("utf-16");

     printbyte(utf_16);

結(jié)果是fe ff 58 02   length = 4,靠,四個(gè)字節(jié)了。咦?后面的低16位不正是和開始c_name的十六進(jìn)制表示一樣的嗎?看來JAVA真正的內(nèi)部字符編碼和UTF-16有或多或少的聯(lián)系。JAVA內(nèi)部究竟是用的什么字符編碼呢?

在THINK IN JAVA 3rd的12章里有一個(gè)例子出現(xiàn)了UTF-16BE

     byte[] utf_16be = name.getBytes("utf-16be");

     printbyte(utf_16be);

結(jié)果出來了:58 02   length = 2

UNICODE的編碼還有一個(gè)LE,這里的BE,LE應(yīng)該是bigendian和littleendian。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
初學(xué)入門:JAVA里字符編碼的探索與理解 - 全部文章 - 技術(shù)學(xué)習(xí)
java亂碼問題分析
CSDN 文檔中心:手機(jī)中文碼制問題的一點(diǎn)理解
Java中文問題詳解,底層編碼解剖
jni中字符轉(zhuǎn)換中文亂碼的處理方法
字符集編碼
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服