说说 Unicode 编码

说说 Unicode 编码

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。

Unicode是国际组织制定的可以容纳世界上所有文字和符号的字符编码方案。

Unicode用数字0-0x10FFFF来映射这些字符,最多可以容纳1114112个字符,或者说有1114112个码位。码位就是可以分配给字符的数字。UTF-8、UTF-16、UTF-32都是将数字转换到程序数据的编码方案。

据我所知,java中的虚拟机jvm ,最后也是转成Unicode编码运行的。

像一些页面,javascript也是可以直接运行unicode编码的。

 

例如:

 

像这个提醒框,里面弹出来的  就是写好的unicode编码,它能够直接被运行。

这句弹出框的代码如下:

 

  1. if(fTime==null||fTime.length==0||tTime==null||tTime.length==0){ 
  2. 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等搜索工具去查。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章