9.關于Unicode字符集

原文鏈接:http://blog.csdn.net/yang3wei/article/details/47414483

點擊閱讀原文

-------------------------------------

1)Java?中 char 占兩個字節,既可以表示中文字符,也可以表示英文字符

2)Unicode只是一個編碼規范,目前實際實現的unicode編碼只要有三種:UTF-8, UCS-2 和 UTF-16

3)UCS-2 是固定長度為 16 位的 unicode 字符集。每個字符都是 2 個字節,UCS-2 只支持 unicode3.0,所以不支持附加字符

4)Unix 平臺中普遍支持 UTF-8 字符集,HTML 和大多數瀏覽器也支持 UTF-8,而 windows 和 java 則支持 UCS-2

5)UTF-8 中漢字一般占三個字節,譬如說,1110xxxx 10yyyyyy 10zzzzzz,除去控制字符,實際上就只占兩個字節 xxxxyyyy yyzzzzzz

最初的unicode編碼是固定長度的,16位,也就是2兩個字節代表一個字符,這樣一共可以表示65536個字符。顯然,這樣要表示各種語言中所有的字符是遠遠不夠的。Unicode4.0規范考慮到了這種情況,定義了一組附加字符編碼,附加字符編碼采用2個16位來表示,這樣最多可以定義1048576個附加字符,目前unicode4.0只定義了45960個附加字符。

Unicode只是一個編碼規范,目前實際實現的unicode編碼只要有三種:UTF-8,UCS-2和UTF-16,三種unicode字符集之間可以按照規范進行轉換。

UTF-8

UTF-8是一種8位的unicode字符集,編碼長度是可變的,并且是ASCII字符集的嚴格超集,也就是說ASCII中每個字符的編碼在UTF-8中是完全一樣的。UTF-8字符集中,一個字符可能是1個字節,2個字節,3個字節或者4個字節長。一般來說,歐洲的字母字符長度為1到2個字節,而亞洲的大部分字符則是3個字節,附加字符為4個字節長。

Unix平臺中普遍支持UTF-8字符集,HTML和大多數瀏覽器也支持UTF-8,而window和java則支持UCS-2。

UTF-8的主要優點:

  • 對于歐洲字母字符需要較少的存儲空間。
  • 容易從ASCII字符集向UTF-8遷移。

UCS-2

UCS-2是固定長度為16位的unicode字符集。每個字符都是2個字節,UCS-2只支持unicode3.0,所以不支持附加字符。

UCS-2的優點:

  • 對于亞洲字符的存儲空間需求比UTF-8少,因為每個字符都是2個字節。
  • 處理字符的速度比UTF-8更快,因為是固定長度編碼的。
  • 對于windows和java的支持更好。

UTF-16

UTF-16也是一種16位編碼的字符集。實際上,UTF-16就是UCS-2加上附加字符的支持,也就是符合unicode4.0規范的UCS-2。所以UTF-16是UCS-2的嚴格超集。

UTF-16中的字符,要么是2個字節,要么是4個字節表示的。UTF-16主要在windows2000以上版本使用。

UTF-16相對UTF-8的優點,和UCS-2是一致的。

Oracle從7.0開始提供對Unicode的支持。Oracle個版本的unicode字符集支主要有:

AL32UTF8

一種UTF-8編碼的字符集,支持最新的unicode4.0標準。字符長度為1,2或者3個字節,附加字符則為4字節長。

UTF8

支持unicode3.0的UTF-8編碼方式。由于附加字符是在unicode3.1中提出的,UTF8不支持附加字符。但是unicode3.0已經為附加字符預留了編碼空間,所以即使在UTF8的數據庫中插入附加字符,也是可以的,只是數據庫會將該字符分隔成兩部分,需要占6個字符的長度。所以,如果需要支持附加字符,那么建議將數據庫的字符集切換為新的AL32UTF8。

UTF8可用于數據庫字符集,也可用于國家字符集。

UTFE

UTFE是基于EBCDIC平臺的unicode字符集,就像ASCII平臺上的UTF8一樣。不同的是,UTFE中,每個字符可能占1,2,3或者4個字節,而附加字符則需要2個4個字節,也就是8個字節來表示。

AL16UTF16

AL16UTF16是一種UTF-16編碼的unicode字符集,在Oracle中用于國家字符集。

AL24UTFFSS

該字符集只支持unicode1.1規范,在Oracle7.2~8i版本中使用,目前已經淘汰。


-------------

更多的Java,Angular,Android,大數據,J2EE,Python,數據庫,Linux,Java架構師,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html


本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538783.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538783.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538783.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

10.java 關鍵字與保留字

Java 關鍵字列表 (依字母排序 共51組)所有的關鍵字都是小寫。 在IDE中都會顯示不同的顏色: abstract, assert, boolean, break, byte, case, catch, char, class, const, continue, default, do, double, else, enum,extends, final, finally, float, for, if,imple…

python爬蟲的用途_python爬蟲用途

廣告關閉 騰訊云11.11云上盛惠 ,精選熱門產品助力上云,云服務器首年88元起,買的越多返的越多,最高返5000元!專業點來說就是應用多臺機器同時實現爬蟲任務,這多臺機器上的爬蟲,就是稱作分布式爬蟲…

android獲取短信息,從其ID Android獲取短信詳細信息

我想得到短信的細節(數字,正文,來的時間);我只知道短信的身份.我可以使用此ID查詢“content:// sms”并獲取詳細信息嗎?目前,我可以循環查詢每條消息并獲取詳細信息.但是當你必須從1000 sms獲得單次sms細節10次時效率不高…..希望你能理解這個問題.感謝名…

二元函數泰勒公式例題_高等數學期末總復習 DAY 5. 羅爾定理證明題 拉格朗日、柯西中值定理 泰勒公式及麥克勞林公式...

DAY 5.DAY 5.1.羅爾定理2.拉格朗日定理3.柯西中值定理4.泰勒公式及麥克勞林公式1.羅爾定理羅爾定理描述如下:如果 R 上的函數 f(x) 滿足以下條件:(1)在閉區間 [a,b] 上連續,(2)在開區間 (a,b) 內…

Hazelcast發布Jet 0.6版本

\看新聞很累?看技術新聞更累?試試下載InfoQ手機客戶端,每天上下班路上聽新聞,有趣還有料!\\\分布式計算技術和工具開發商Hazelcast正式發布了他們的開源流式處理引擎Jet 0.6。\\Jet自2017年2月起就已可用,而…

11.標識符_unicode和GBK_各種字符集的關系

標識符 作用: 給變量,類和方法命名。 Java標識符命名規則: --必須以字母,下劃線_,美元符$開頭。 --其他部分可以是字母,下劃線,美元符和數字的任意組合。 --Java標識符大小寫敏感&#xf…

python怎么轉到下一行_Python轉到下一行并保存/編輯內容

這個代碼是在以前的帖子中建立的。我正在努力調整它以適應我們的數據。但這不管用。。以下是我們的文件示例:read:1424:2165 TGACCA/1:2165 TGACCA/2 1..100 chr1:3033296..3033395 #just this line 1..100 -chr1:3127494..3127395 1..100 chr1:3740372..3740471 1 …

android應用程序是什么,簡述Android應用程序結構是什么?公共題庫

試題分類:Android簡述Android應用程序結構是什么?解析:Android應用程序結構是:LinuxKernel(Linux內核)、Libraries(系統運行庫或者是c/c核心庫)、ApplicationFramework(開發框架包)、Applications(核心應用程序)以下這些控件可以放置按鈕?答…

《程序設計與數據結構》第八周學習總結

學號 20172326 《程序設計與數據結構》第八周學習總結 教材學習內容總結 后綁定在程序執行時執行多態性可由繼承與接口實現排序有選擇法排序與插入法排序搜索分為線性搜索與二分搜索算法,同一類型的不同方法可能解決同一問題,但是,效率與難以…

python獲取文件名不含后綴名_大部分Python資料都沒有說到的重點-用實戰教你解決問題的思路...

前言最近有些剛入門Python的小伙伴問我,他已經學會了大部分語法,基本的列表,元組也會使用,但是在實際中需要做一點小需求的時候,仍然不知所措。解決問題重要的并非是如何寫代碼,而是如何分析和拆解問題&…

12.JAVA基本數據類型

Java是一種強類型語言,每個變量都必須聲明類型。 String 不是java的基本數據類型!!! 除了8種基本數據類型之外,其他的都是引用類型。 引用類型的初始值是null byte,short,int類型的默認值為0 …

python成語接龍代碼_實現成語接龍(Python)

目錄 前言 要實現的規則如下:根據接龍的成語的第一個字與前一個成語結尾的字的比較,分一下三種模式模式1:字相同拼音也要相同 模式2:字相同拼音不要求相同 模式3:字不要相同拼音要求相同,即諧音就可以接龍的…

opencv android jni,OpenCV - AndroidStudio的JNI工程及引用OpenCV

一把利刃,用不好,會傷到你遍體鱗傷。用得好,便為你披荊斬棘,所向披靡。好與不好之間,便是歷練。幾經波折,終于跌跌撞撞,集成了OpenCV,并實現了灰度圖片,自此一扇新的大門已經打開。至此我手中已…

python語句int_python中的int函數

int函數用來把其他類型向下轉換為整數類型 int(3.6) --- 3 int(3.2) --- 3 int(1/3) --- 0 int("1") --- 1 int()可以按照指定的進制的整數轉換為十進制的整數,如果不指定默認是十進制轉換為十進制,第二個參數給0和不給一樣,除非你…

13.JAVA基礎:八進制,十六進制表示

原文路徑:http://simon-c.iteye.com/blog/802149 點擊查看原文 ----------------------------------------------------------- 可以使用八進制、十六進制的類型:long, int, short, byte 八進制表示:以0作為前綴,數碼有0,1,…

excel圖表交互聯動_深入講解EasyShu圖表與引用數據動態聯動功能

EasyShu一開始的架構是將制作好的圖表最終返回給用戶,不依賴用戶工作表的單元格區域引用,可滿足圖表繪制后的脫離數據源分享傳播,無奈用戶最強烈的反饋是要求圖表與數據保持聯動,這一需求實在對EasyShu是一個巨大的挑戰。為了將Ea…

使用pipenv代替virtualenv管理python包

前言 第一次接觸到 pipenv 是因為看到董明偉大神的《使用pipenv管理你的項目》,之前可能和大家的選擇類似使用 virtualenv 或者 pyenv 來管理 python 的包環境。virtualenv 是針對python的包的多版本管理,通過將python包安裝到一個模塊來作為python的包虛…

android代碼生成excel,AndroidExcel

Android_Excel在android中生成excel##效果圖##初始化數據首先我們要先造下測試數據,這里我把數據寫死在一個常量類Const中,如下:public class Const {public interface OrderInfo{public static final String[][] orderOne new String[][] {…

14.JAVA整型變量

表示形式 Java語言整型常數的3種表示形式: 1、十進制整數:99,-100,0 2、八進制整數:要以0開頭,如015 3、十六進制整數:以0x開頭,如0x15 點擊查看十進制八進制十六進制概念 public static v…

exists sql用法_干貨!SQL性能優化,書寫高質量SQL語句

寫SQL語句的時候我們往往關注的是SQL的執行結果,但是是否真的關注了SQL的執行效率,是否注意了SQL的寫法規范?以下的干貨分享是在實際開發過程中總結的,希望對大家有所幫助!1. limit分頁優化當偏移量特別大時&#xff0…