說說 Unicode 編碼
Unicode(統一碼、萬國碼、單一碼)是一種在計算機上使用的字符編碼。它爲每種語言中的每個字符設定了統一併且唯一的二進制編碼,以滿足跨語言、跨平臺進行文本轉換、處理的要求。
Unicode是國際組織制定的可以容納世界上所有文字和符號的字符編碼方案。
Unicode用數字0-0x10FFFF來映射這些字符,最多可以容納1114112個字符,或者說有1114112個碼位。碼位就是可以分配給字符的數字。UTF-8、UTF-16、UTF-32都是將數字轉換到程序數據的編碼方案。
據我所知,java中的虛擬機jvm ,最後也是轉成Unicode編碼運行的。
像一些頁面,javascript也是可以直接運行unicode編碼的。
例如:
像這個提醒框,裏面彈出來的 就是寫好的unicode編碼,它能夠直接被運行。
這句彈出框的代碼如下:
- if(fTime==null||fTime.length==0||tTime==null||tTime.length==0){
- alert("\u6e29\u99a8\u63d0\u793a\uff1a\u8be5\u51fa\u5dee\u65b9\u5f0f\u9700\u5148\u586b\u5199\u597d\u000d\u000d\u3010\u51fa\u5dee\u5f00\u59cb\u65f6\u95f4\u3011\u4e0e\u3010\u51fa\u5dee\u7ed3\u675f\u65f6\u95f4\u3011\u000d\u000d\u65b9\u53ef\u81ea\u52a8\u8ba1\u7b97\u3010\u8865\u52a9\u5929\u6570\u3011\u3010\u51fa\u5dee\u8865\u52a9\u3011\u3010\u4f19\u98df\u8865\u52a9\u3011");
- }
在其中有用到非常有用的 換行 unicode編碼,
也就是 \u000d
用 <br > 好像不行
那我們如何更快的把中文字符 轉成 unicode編碼呢?
其實 jdk裏面 就有快速轉換的工具。
d:\j2sdk1.4.2_19\bin\native2ascii.exe
d:\j2sdk1.4.2_19\bin\native2ascii.exe 這個工具如何使呢??
直接在cmd中輸入命令:
native2ascii 源文件名.txt 新文件名.txt
這句命令 就可以把 中文的文件轉成 unicode的文件
unicode 和utf-8 到底有什麼不同呢?
簡單來說,unicode,gbk和BIG-5碼(大五碼,香港臺灣等地所用)就是編碼的值,而utf-8,uft-16之類就是這個值的表現形式。
前面那三種編碼是兼容的,同一個漢字,那三個碼值是完全不一樣的。如"漢"的uncode值與gbk就是不一樣的,假設uncode爲a040,gbk爲b030,而uft-8碼,就是把那個值表現的形式。utf-8碼完全只針對uncode來組織的,如果gbk要轉utf-8必須先轉uncode碼,再轉utf-8就OK了。
關於使用場景嘛,我能說的就是,在jvm裏運行時是把其他的編碼轉成unicode編碼再運行的,
我自己使用過的經歷,就是解決 java代碼裏包含的js代碼的亂碼問題。
(各個語言採用的編碼機制有些不一樣,C用的是ACSII,java用的是Unicode。)
10**翔(廣州) 15:00:07
其實這個編碼在項目的配置文件中會經常用的到,在配置文件中,如:struts.properties。佔位符
Johnny 15:00:57
那 在配置文件中用 這種unicode編碼有什麼好處呢?
我自己覺得應該就是,能更快的在jvm裏運行吧。
jvm裏所用的編碼就是unicode
類文件都是通過jvm運行的,而要讓jvm運行 要先轉成unicode
我大概就知道這些了,關於更多的unicode編碼的知識,大家可以通過 百度、google、duckduckgo等搜索工具去查。