<sup id="m40ya"></sup>
  • 
    
  • <kbd id="m40ya"></kbd>
    <samp id="m40ya"></samp>
    <ul id="m40ya"></ul>
  • 更多精彩內(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 91国内揄拍国内精品情侣对白| 国产精品免费久久久久电影网| 亚洲欧洲成人精品香蕉网| 亚洲av无码成人精品区一本二本| 麻豆精品不卡国产免费看| 少妇亚洲免费精品| 国产69精品久久久久观看软件| 久久精品国产亚洲网站| 视频精品一区二区三区| 亚洲国产精品无码久久| 91精品国产免费入口| 国产精品无码久久综合| 国产成人精品久久亚洲| 国产精品爽爽va在线观看无码| 亚洲欧洲国产精品久久| 久久福利青草精品资源站免费| 九九精品国产99精品| 精品国产粉嫩内射白浆内射双马尾| 久久777国产线看观看精品卜| 久久精品无码一区二区日韩AV| 国产精品免费看久久久无码| 交换国产精品视频一区| 亚洲精品高清国产麻豆专区| 99精品国产99久久久久久97| 亚洲AV无码乱码精品国产| 国产精品伦理一二三区伦理| 亚洲国产精品无码久久九九大片| 精品国产yw在线观看| 亚洲精品高清久久| 久久精品国产2020观看福利| 国产午夜精品一二区理论影院| 国产精品女同一区二区久久| 精品一区二区三区视频| 自拍偷自拍亚洲精品偷一| 国产69精品久久久久APP下载 | 精品国产福利一区二区| 久久精品人人爽人人爽快| 国产乱码精品一品二品| 国产综合色在线精品| 99精品国产高清一区二区三区 | 国产午夜精品一区二区三区不卡|