導航:首頁 > 編程語言 > java寬字元

java寬字元

發布時間:2024-12-22 07:52:35

java的char類型包含哪些數據

java的char是2位元組,16bit,包含所有ascii字元,而且更多,api文檔里有描述

char的數據是通過 UnicodeData 文件中的信息定義的,該文件是 Unicode Consortium 維護的 Unicode Character Database 的一部分。此文件指定了各種屬性,其中包括每個已定義 Unicode 代碼點或字元范圍的名稱和常規類別。

此文件及其描述可從 Unicode Consortium 獲得,網址如下:

Unicode 字元表示形式

char 數據類型(和 Character 對象封裝的值)基於原始的 Unicode 規范,將字元定義為固定寬度的 16 位實體。Unicode 標准曾做過修改,以允許那些其表示形式需要超過 16 位的字元。合法代碼點 的范圍現在是從 U+0000 到 U+10FFFF,即通常所說的 Unicode 標量值。(請參閱 Unicode 標准中 U+n 表示法的定義。)

從 U+0000 到 U+FFFF 的字元集有時也稱為 Basic Multilingual Plane (BMP)。代碼點大於 U+FFFF 的字元稱為增補字元。Java 2 平台在 char 數組以及 String 和 StringBuffer 類中使用 UTF-16 表示形式。在這種表現形式中,增補字元表示為一對 char 值,第一個值取自高代理項 范圍,即 (uD800-uDBFF),第二個值取自低代理項 范圍,即 (uDC00-uDFFF)。

所以,char 值表示 Basic Multilingual Plane (BMP) 代碼點,其中包括代理項代碼點,或 UTF-16 編碼的代碼單元。int 值表示所有 Unicode 代碼點,包括增補代碼點。int 的 21 個低位(最低有效位)用於表示 Unicode 代碼點,並且 11 個高位(最高有效位)必須為零。除非另有指定,否則與增補字元和代理項 char 值有關的行為如下:

只接受一個 char 值的方法無法支持增補字元。它們將代理項字元范圍內的 char 值視為未定義字元。例如,Character.isLetter('uD840') 返回 false,即使是特定值,如果在字元串的後面跟著任何低代理項值,那麼它將表示一個字母。

接受一個 int 值的方法支持所有 Unicode 字元,其中包括增補字元。例如,Character.isLetter(0x2F81A) 返回 true,因為代碼點值表示一個字母(一個 CJK 象形文字)。

在 Java SE API 文檔中,Unicode 代碼點 用於范圍在 U+0000 與 U+10FFFF 之間的字元值,而 Unicode 代碼點 用於作為 UTF-16 編碼的代碼單元的 16 位 char 值。有關 Unicode 技術的詳細信息,請參閱 Unicode Glossary。

閱讀全文

與java寬字元相關的資料

熱點內容
精通php5應用開發 瀏覽:596
安卓機導資料到電腦用什麼軟體 瀏覽:809
變頻冰箱壓縮機一直工作 瀏覽:464
php編譯後怎麼加密 瀏覽:423
python程序代碼最簡單 瀏覽:129
文件夾粘貼文件黑屏一下 瀏覽:859
伺服器wait什麼意思 瀏覽:265
java電子商務系統源碼 瀏覽:500
單片機還要漲多久 瀏覽:258
蘋果app上的小鎖怎麼設置 瀏覽:536
瑞薩單片機為什麼不出名 瀏覽:801
阿里雲伺服器性能優化安全測試 瀏覽:372
linux組命令 瀏覽:967
怎麼推廣app讓人去下載和注冊 瀏覽:548
空調壓縮機啟動電容用大一點的行嗎 瀏覽:396
mac命令行查找文件 瀏覽:177
按鍵精靈安卓版怎麼停止線程 瀏覽:73
九爺妾不從命壓縮包下載 瀏覽:462
單片機and 瀏覽:687
什麼叫可編程 瀏覽:940