<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 精品人妻人人做人人爽| 精品人成电影在线观看| 久久精品国产99国产精偷| 成人精品一区久久久久| 精品国精品无码自拍自在线| 97r久久精品国产99国产精| 国产成人不卡亚洲精品91| 国产福利视精品永久免费 | 中文精品久久久久国产网站| 嫩草影院精品视频在线观看| 91精品国产成人网在线观看| 国产精品揄拍100视频| 国产A√精品区二区三区四区 | 精品国产婷婷久久久| 国产精品自产拍在线网站 | 国产午夜精品福利| 欧美激情国产精品视频一区二区 | 国产精品无码专区AV在线播放 | 亚洲精品中文字幕无乱码| 国产精品区一区二区三在线播放| 国产精品亚洲αv天堂无码| 国产乱人伦真实精品视频| 国产视频精品久久| 亚洲精品久久无码av片俺去也| .精品久久久麻豆国产精品| 国产精品污WWW一区二区三区 | 校园春色国产精品| 精品久久久久久久无码| 亚洲综合一区二区精品久久| 99无码精品二区在线视频| 久久久国产成人精品| 老司机69精品成免费视频| 国内精品久久人妻互换| 国产午夜无码精品免费看| 亚洲精品成人无限看| 亚洲精品国产精品乱码不卡√ | 中文字幕精品一区影音先锋| 久久久久久国产精品mv| 日韩精品无码中文字幕一区二区| 久久精品99视频| 久久久精品人妻一区二区三区蜜桃 |