java,charset
<link rel="stylesheet" href="https://js.how234.com/third-party/SyntaxHighlighter/shCoreDefault.css" type="text/css" /><script type="text/javascript" src="https://js.how234.com/third-party/SyntaxHighlighter/shCore.js"></script><script type="text/javascript"> SyntaxHighlighter.all(); </script>
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; }
-
手機呼叫失敗是怎麼了
手機網絡衝突、處於飛行模式、手機信號不好、網絡設置不對或者是電話卡出現問題以及手機硬件有故障都會導致手機呼叫失敗,我們需要找出手機呼叫失敗的原因,然後再有針對性的去解決問題。如果我們不小心點開了手機的【飛行模式】,那麼就無法撥打電話了,要馬上把手機...
-
微信怎麼建
1、微信的創建方法:打開微信。點擊更多。選擇註冊。輸入暱稱,手機號和密碼。勾選同意協議。點擊註冊即可。2、微信推薦使用手機號註冊,並支持100餘個國家的手機號。微信不可以通過QQ號直接登錄註冊或者通過郵箱帳號註冊。第一次使用QQ號登陸時,是登陸不了的,只能用...
-
螞蟻森林如何不讓別人收取能量,積分兌換
1、首先打開支付寶APP,點擊:我的,在我的頁面找到:螞蟻會員,點進去。2、進來之後,我們在螞蟻會員頁面找到:領積分,點擊進去。3、進來之後我們可以看到自己的積分,以及:螞蟻森林能量保護罩的圖標,我們會看到兌換需要200積分,積分足夠可以點擊,馬上兌。4、之後進入螞蟻森林頁面...
-
excel表格設打開密碼忘記了怎麼辦
我們在工作中經常會使用到Excel表格,如果這個表格的內容非常重要,並且不能夠輕易外露的話,可以設置一個保護密碼,但是如果表格的密碼忘記了,應該怎麼打開呢?受保護的Excel文檔是無法修改的,輸入內容就會出現要求輸入密碼的提示框,我們修改文件的後綴名爲rar,再回車確定...