什么是Unicode

什么是Unicode,第1张

对于英文来说,ascii码0-127就足以代码所有字符,对于中文而言,则必须使用两个字节(byte)来代表一个字符,具第一个字节必须大于127(所以我们有许程序判断中文都是以ascii码大于127作为条件)

以上用两个字节来表示一个中文的方式,在习惯上称为双字节(即DBCS:Double-ByteCharacterSet),而相对之下,英文的字符码就称为单字节SBCS(Single-ByteCharacterSet)。

虽然双字节(DBCS)足以解决中英文字符混合使用情况,但对于不同字符系统而言,必须经过字符码转换,非常麻烦。例如:中英文混合情况,日文,韩文等等。

为解决这个问题,Apple,Xerox,Microsoft,IBM,Novell,Borland很多公司联合起来制订了一套可以适用于全世界所有国家的字符码,就称为Unicode

Unicode的特点是:

不管哪一国的字符码均以两个Byte表示,例如"A"在Unicode则是16进制41和00的组合,即4100,高位41(转换为Ascii码即是65=A),

WindowsNT/2000以Unicode来表示字符集,例如你可以看到MSSQLServer中产生的SQL文件可以选择是以Unicode来保存还是以普通格式来保存,如果你以Unicode保存,则在95/98平台许多软件均无法正确读出其格式。

同时你还可以注意到95/98中API定义,许多名称结尾是有一个A的,例如

WriteProfileStringA

而在NT/2000 *** 作系统中,提供了两套API,另外一个命令是WriteProfileStringW,以W结尾的API只适用于NT/2000。(在NT中使用以W结尾的API函数效率比A结尾的要快,因为省去了Unicode和DBCS/SBCS的转换过程)

这样我们经常要用到的判断字符串长度的函数,在NT和95/98下执行结果不同,如下:(下面代码适合于VB,ASP)

95/98中:

len("abc中国")返回7(因为每个中文作为两个Ascii码来看)

nt/2000中:

len("abc中国")返回5(因为每个字符都作为一个Unicode来看)

明天将介绍如何在VB/NT环境下使len("abc中国")返回长度等于7

(PB不存在以上情况,除非你在NT下使用PB的Unicode版本,通常我们大家使用的均是PB的Windows32位版本)

vba模块命名用英文。

检查系统语言,显示语言是否中文简体,非unicode程序语言设置为中文简体,office是否简体语言。

如果是win10系统,区域设置里取消勾选beta版,之前勾选过的,可能需要重新创建excel文件。

或者安装applocale等转区软件,让excel以英文运行。

额 你真不友好啊 别人帮你你还骂 String string = "\u000"+i; 换成单引号试试 你用字符串加整形了 字符串与字符创的拼接用+号

for (int i = 0x0000; i <10 ; i++)

{

int string = '\u000'+i;

Systemoutprintln(string);

}

1、按WIN+X,打开控制面板。

2、然后选择“时钟、语言和区域”选项。

3、然后点击“更改位置”选项,如下图。

4、在区域下,切换到“管理”界面,然后点击“更改系统区域设置”按钮。

5、选择“英语(美国)”然后确定(也可以选择你自己需要的语言)。

以上就是关于什么是Unicode全部的内容,包括:什么是Unicode、电脑非Unicode程序的语言问题、java程序输出Unicode码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9972253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存