怎么把汉字转换成unicode编码

怎么把汉字转换成unicode编码,第1张

unicode编码不需要转换成汉字,因为unicode就是和字符关联的终极编码。
windows中只有unicode码可以和字符直接关联,也就是使用国际标准的unicode字符集。
中文windowsXp默认的内码是gbk(装过gb18030补丁的话也就变成gb18030),日文系统就是JIS,不同语言版本的windows都有不同的默认内码,这是每个国家的标准化管理局规定的。
然后就是页码表的概念,所谓页码表就是把一个用系统默认编码(比如gbk,gb2312)表示的字符映射到对应unicode编码,而每个unicode编码对应着唯一确定的字符。这样就完成了地域性编码到国际标准码再到字符的对应关系。
在控制面板->区域和语言选择->高级,里面可以看到window提供的所有页码表。

Unicode编码
   在计算机科学领域中,Unicode(统一码、万国码、单一码、标准万国码)是业界的一种标准,它可以使电脑得以呈现世界上数十种文字的系统。Unicode是基于通用字符集(Universal Character Set)的标准来发展,并且同时也以书本的形式(The Unicode Standard,目前第五版由Addison-Wesley Professional出版,ISBN-10: 0321480910)对外发表。Unicode包含了超过十万个字符(在2005年,Unicode的第十万个字符被采纳且认可成为标准之一)、一组可用以作为视觉参考的代码图表、一套编码方法与一组标准字符编码、一套包含了上标字、下标字等字符特性的列举等。
    Unicode的编码方式与ISO 10646的通用字符集(Universal Character Set,UCS)概念相对应,目前实际应用的Unicode版本对应于UCS-2,使用16位的编码空间。也就是每个字符占用2个字节。这样理论上一共最多可以表示216即65536个字符。基本满足各种语言的使用。实际上目前版本的Unicode尚未填充满这16位编码,保留了大量空间作为特殊使用或将来扩展。

C++处理Unicode编码
为了处理Unicode编码C++为每个字符处理函数提供了宽字符(wchar_t)处理函数。

在ANSI/ISO 9899--1990也就是美国国家为程序设计语言C指定的标准(也称为ANSI C)中是这样定义的:用多个字节来代表的字符称之为宽字符,而Unicode只是宽字符编码的一种实现,宽字符并不一定是Unicode。

C语言中输出unicode编码可以是用宽字符输出函数。

下面是宽字符常用的输入输出函数表:
打印和扫描字符串:
宽字符函数                       描述
fprintf()/fwprintf()             使用vararg参量的格式化输出
fscanf()/fwscanf()             格式化读入
printf()                              使用vararg参量的格式化输出到标准输出
scanf()                              从标准输入的格式化读入
sprintf()/swprintf()             根据vararg参量表格式化成字符串
sscanf()                           以字符串作格式化读入
vfprintf()/vfwprintf()           使用stdarg参量表格式化输出到文件
vprintf()                             使用stdarg参量表格式化输出到标准输出
vsprintf()/vswprintf()          格式化stdarg参量表并写到字符串
输入和输出:
宽字符函数     普通C函数     描述
fgetwc()           fgetc()           从流中读入一个字符并转换为宽字符
fgetws()           fgets()           从流中读入一个字符串并转换为宽字符串
fputwc()           fputc()           把宽字符转换为多字节字符并且输出到标准输出
fputws()           fputs()           把宽字符串转换为多字节字符并且输出到标准输出串
getwc()            getc()            从标准输入中读取字符, 并且转换为宽字符
getwchar()       getchar()       从标准输入中读取字符, 并且转换为宽字符
None               gets()            使用fgetws()
putwc()            putc()            把宽字符转换成多字节字符并且写到标准输出
putwchar()        putchar()       把宽字符转换成多字节字符并且写到标准输出
None               puts()             使用fputws()
ungetwc()         ungetc()         把一个宽字符放回到输入流中

C语言,根据一个变量的大小把数字转换成UNICODE数组 0的UNICODE是:0030,1的UNICODE是:0031,2的UNICODE是:0032…… 如果变量是:1234 ,那生成的UNICODE应该是:array[] = ”0031003200330034” 如果变量是:5678 ,那生成的UNICODE应该是:array[] = ”0035003600370038” 如果变量是:34 , 那生成的UNICODE应该是:array[] = ”00300034” 如果变量是:4 , 那生成的UNICODE应该是:array[] = ”0034” 我想大家已经看明白了:这个变量最大是4位,最小是1位,要生成的这个数组必须是 字符串数组,要能根据变量的大小自动把数字转换成字符串,并且能根据变量的大小自动 调整自身长度

打开记事本,点击"文件">"保存">选择"编码"为:Unicode
体验一下就知道了,如果irc文件可以用记事本打开,直接另存为unicode文件,不行就要用专门的转换工具了。


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

原文地址: http://outofmemory.cn/yw/12806241.html

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

发表评论

登录后才能评论

评论列表(0条)

保存