<strike id="cakm0"></strike>
  • <button id="cakm0"><dl id="cakm0"></dl></button>
  • <samp id="cakm0"><tbody id="cakm0"></tbody></samp>
    <samp id="cakm0"><pre id="cakm0"></pre></samp><ul id="cakm0"></ul>
    <strike id="cakm0"></strike>
    <li id="cakm0"></li>
  • <ul id="cakm0"></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麻豆~ | 99久久er这里只有精品18| 中文国产成人精品久久下载| 无码专区国产精品视频| 国产四虎免费精品视频| 无码精品人妻一区二区三区免费看| 国产亚洲精品第一综合| 成人国产精品秘片多多| 中文字幕色婷婷在线精品中| 久久久久青草大香线综合精品| 精品国产福利盛宴在线观看| 国产精品久久久久久久久99热| 在线播放国产精品| 亚洲欧洲久久精品| 久久久久人妻精品一区| 久久精品国产999大香线焦| 99精品视频在线| 亚洲麻豆精品国偷自产在线91 | 国产精品内射婷婷一级二| 国产精品福利一区| 欧美日韩亚洲精品| 久这里只精品99re66| 992tv精品视频tv在线观看| 91精品国产91久久久久| 亚洲自偷自偷精品| 99这里只有精品66视频| 久久精品日日躁精品| 久久精品国产99国产电影网 | 国产精品igao视频| 四虎国产精品成人免费久久| 香蕉精品高清在线观看视频| 日韩精品福利视频一区二区三区| 国产精品99久久不卡| 亚洲精品无码专区久久| 久久久精品人妻久久影视| 久久久久久久精品毛万迈巴赫车标|