<address id="zhpbl"></address>
<noframes id="zhpbl">
<address id="zhpbl"><form id="zhpbl"><th id="zhpbl"></th></form></address>

    <em id="zhpbl"></em>

      <address id="zhpbl"><th id="zhpbl"><progress id="zhpbl"></progress></th></address>
      更多精彩內容,歡迎關注:

      視頻號
      視頻號

      抖音
      抖音

      快手
      快手

      微博
      微博

      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編碼,每個字符占用兩個字節,16個二進制位,向ByteBuffer中存放數據的時候需要考慮字符的編碼,從中讀取的時候也需要考慮字符的編碼方式,也就是編碼和解碼。

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

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

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

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

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

      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類。
      推薦度:
      為你推薦
      資訊專欄
      熱門視頻
      相關推薦
      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 復活節的由來 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 少妇高潮太爽了在线视频