<th id="wu2k2"><s id="wu2k2"></s></th> <blockquote id="wu2k2"></blockquote>
  • <tr id="wu2k2"></tr>
  • <samp id="wu2k2"><tbody id="wu2k2"></tbody></samp><samp id="wu2k2"><tbody id="wu2k2"></tbody></samp>
  • 更多精彩內(nèi)容,歡迎關(guān)注:

    視頻號
    視頻號

    抖音
    抖音

    快手
    快手

    微博
    微博

    java charset

    文檔

    java charset

    Charset類是在java.nio.charset包中,它繼承了Comparable接口,還有CharsetDecoder、CharsetEncoder編碼和解碼的類,都是繼承Object類。
    推薦度:
    導讀Charset類是在java.nio.charset包中,它繼承了Comparable接口,還有CharsetDecoder、CharsetEncoder編碼和解碼的類,都是繼承Object類。

    java charset是什么,讓我們一起了解一下?

    Charset類是在java.nio.charset包中,它繼承了Comparable接口,還有CharsetDecoder、CharsetEncoder編碼和解碼的類,都是繼承Object類。

    Java中的字符使用Unicode編碼,每個字符占用兩個字節(jié),16個二進制位,向ByteBuffer中存放數(shù)據(jù)的時候需要考慮字符的編碼,從中讀取的時候也需要考慮字符的編碼方式,也就是編碼和解碼。

    我們都知道,Java中char類型是16位無符號基本數(shù)據(jù)類型,用來存儲Unicode字符。字符數(shù)據(jù)類型的范圍為0到65535,可以存儲65536個不同的Unicode字符,這在起初Unicode字符集不是很大的時候,是沒問題的。

    然而隨著Unicode字符集的增長,已經(jīng)超過65536個了,根據(jù)Unicode標準,現(xiàn)在Unicode代碼點的合法范圍是U+0000到U+10FFFF,U+0000到U+FFFF稱為Basic Multilingual Plane(BMP),代碼點大于U+FFFF的字符稱為增補字符。

    Java如何解決這個問題的呢?

    Java的char類型使用UTF-16編碼描述一個代碼單元。在這種表現(xiàn)形式下,增補字符用一對代碼單元編碼,即2個char,其中,第一個值取值自\uD800-\uDBFF(高代理項范圍),第二個值取值自\uDC00-\uDFFF(低代理項范圍)。Unicode規(guī)定,U+D800到U+DFFF的值不對應于任何字符,為代理區(qū)。因此,UTF-16利用保留下來的0xD800-0xDFFF區(qū)段的碼位來對增補字符進行編碼。

    另外,在Java里,如果沒有指定Charset的時候,比如new String(byte[] bytes),都會調(diào)用Charset.defaultCharset()的方法,該字符集默認跟操作系統(tǒng)字符集一致,也可以通過-Dfile.encoding=叉叉叉來手動設(shè)定,這個方法的具體實現(xiàn)如下:

    public?static?Charset?defaultCharset()?{
    ????????if?(defaultCharset?==?null)?{
    ????synchronized?(Charset.class)?{
    java.security.PrivilegedAction?pa?=
    ????new?GetPropertyAction("file.encoding");
    String?csn?=?(String)AccessController.doPrivileged(pa);
    Charset?cs?=?lookup(csn);
    if?(cs?!=?null)
    ????defaultCharset?=?cs;
    ????????????????else?
    ????defaultCharset?=?forName("UTF-8");
    ????????????}
    }
    return?defaultCharset;
    ????}

    以上就是小編今天的分享了,希望可以幫助到大家。

    文檔

    java charset

    Charset類是在java.nio.charset包中,它繼承了Comparable接口,還有CharsetDecoder、CharsetEncoder編碼和解碼的類,都是繼承Object類。
    推薦度:
    為你推薦
    資訊專欄
    熱門視頻
    相關(guān)推薦
    java cipher java class java class.forname java classloader java clob java clone() java collect java collections java color java combobox java comet 山楂干泡水最佳搭配 java commandline java comparable接口 java compiler java config java console java console.log 復活節(jié)的由來 java const java charsequence java charat java channel iPad怎么重啟 java cglib 平板如何錄屏 java ceiling java callback java calendar獲取當前時間 蘋果13怎么開機 java calculate java byte取值范圍 java bytebuffer java bundle java build.gradle java bufferedoutputstream java bufferedimage wps怎么求和 java break java blob
    Top 无码人妻精品一区二区蜜桃AV| 国产精品高清一区二区人妖| 在线观看精品国产福利片100 | 91精品国产综合久久婷婷| 麻豆国产VA免费精品高清在线| 日韩精品区一区二区三VR | 国产午夜精品无码| 精品女同一区二区三区免费播放 | 无码精品人妻一区二区三区免费| 一本一本久久a久久综合精品蜜桃| 亚洲无删减国产精品一区| 在线观看国产精品普通话对白精品| 精品女同一区二区三区在线| 国产精品夜夜春夜夜爽久久小| 国产精品久久久天天影视| 少妇人妻精品一区二区三区| 亚洲日韩国产精品第一页一区| 亚洲国产精品人人做人人爱| 探花国产精品三级在线播放| 2017国产精品自拍| 久久精品国产亚洲AV久| 无码国内精品人妻少妇| 精品久久久久久国产| 高清国产精品人妻一区二区 | 国产精品视频1区| 麻豆精品无码国产在线果冻| 2020国产欧洲精品视频| 精品久久久无码21p发布| 亚洲精品国产福利片| 人妻熟妇乱又伦精品视频| 久久精品一区二区三区日韩| 国产亚洲精品xxx| 亚洲精品无码乱码成人| 99久久精品影院老鸭窝| 国内揄拍国内精品| 97在线精品视频| 99久久国产精品免费一区二区| 久久久久久久亚洲精品| 国语自产精品视频| 久久国产乱子伦精品免费强| 精品视频一区二区三区免费 |