<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 日韩精品无码中文字幕一区二区 | 亚洲处破女AV日韩精品| 欧亚精品卡一卡二卡三| 麻豆精品在线播放| 国产精品爽黄69天堂a片| 亚洲一区精品无码| 国产在热线精品视频| 久久夜色撩人精品国产小说| 亚洲国产精品成人久久| 国产免费久久精品| 无码精品尤物一区二区三区| 国产精品后入内射日本在线观看 | 亚洲av永久无码精品古装片| 青青青亚洲精品国产| 久久精品无码一区二区无码| 精品无码久久久久久久久| 色一乱一伦一图一区二区精品| 国产精品美女免费视频观看| 老司机无码精品A| 97麻豆精品国产自产在线观看| 久久夜色精品国产www| 国产精品第44页| 久久精品国产99久久| 精品久久久久久无码中文字幕| 国产欧美精品123区发布| 亚洲国产精品成人综合色在线婷婷| 国产自偷亚洲精品页65页| 国产三级精品在线观看| 亚洲精品伦理熟女国产一区二区 | 久久久久久久久久国产精品免费 | 狠狠精品久久久无码中文字幕| 精品国产天堂综合一区在线| 国产92成人精品视频免费| 久9久9精品视频在线观看| 国内精品久久久久影院网站| 亚洲国产精品一区二区第四页 | 一本一道久久a久久精品综合| 日韩精品一卡2卡3卡4卡新区乱码| 久久精品国产亚洲AV电影| 柠檬福利精品视频导航| 国产精品资源一区二区|