zoukankan      html  css  js  c++  java
  • 文本格式Unicode和ANSI格式的区别

    首先DBCS是亚洲的字符集,包含了ANSI,ANSI也就是ASCII值为0-255之间的字符,当字符为ANSI时,存放于文件中占用的是一个字节.如果是非ANSI的呢,则占用两字节.用VB的ASC函数可以很容易得到一个字符的DBCS值(或是说ANSI值吧)。


    假如一个字符得到的DBCS值为&H1234,当然,这个值是转换成了十六进制的,因为对于磁盘存放来说,一般使用位(BIT),即二进制存放,而显示字节呢用十六进制显示则非常直观.存放在文件中即"12 34"(这是用十六进制文本编辑器中查看到的形式)。


    而Unicode是世界性的字符集,几乎包含了世界上的所有字符,每个字符都有一个单一的Unicode值。


    Unicode值也是占用两个字节的.但不同的是它虽然也包含了标准的ANSI字符值,但是ANSI字符只占用一个字节,Unicode会自动在ANSI值后加入一个值为0的字节.比如说一个 ANSI值为&h45的字符,以Unicode形式存放则为"45 00".至于如何用VB得到一个字符的Unicode值,ASCW函数可以轻松搞定.但是普通的非ANSI字符以Unicode形式时则是从右存到左的.比如一个值为&H1234的字符,存为Unicode时则为"34 12"。


    知道了这些有什么用呢 Unicode的意义在于能让不同环境下的操作系统识别.比如说吧,你在中文的操作系统下使用记事本写了一篇文本文章.但你要拿到别的环境下的WIN2K(之所以选WIN2K,是因为WIN2K支持Unicode,否则用WIN98只能用外接中文平台才能查看)下查看(比如美国的电脑,操作系统为英文,代码页也是美国(WIN2K有设置代码页)),即使该电脑已经安装了中文字体,即使用WORD这样的编辑软件打开也肯定是乱码一堆.这是为什么呢 因为英文的WIN2K操作系统只能识别Unicode呀!并不能识别咱们亚洲的DBCS码呀!


    解决方法只要你把它转换为Unicode码存放就OK了!像Utrla Edit就能转换.WIN2K里也有代码转换器可以,而WIN2K下的记事本则可以用另chun为Unicode码.如果你使用的是WIN9X,则可以自己用VB解决了.Unicode码存放的文本文件与普通的文本文件不同之处仅仅是文件头加了"FF FE"而已.其他的则是代码值不同.只要转换了字符的代码,并在文件前加上"FF FE"这两个字节,就是把这篇中文文章保存为Unicode格式了!转换成Unicode格式后,英文操作系统的机器只要用WORD打开你的文件就能查看了!
    (为什么用WORD是因为它有字体识别功能.普通记事本只把文字链接到系统字体上,而英文系统的默认字体可不是。)

  • 相关阅读:
    iOS中Zbar二维码扫描的使用
    SOJ 1135. 飞跃原野
    SOJ 1048.Inverso
    SOJ 1219. 新红黑树
    SOJ 1171. The Game of Efil
    SOJ 1180. Pasting Strings
    1215. 脱离地牢
    1317. Sudoku
    SOJ 1119. Factstone Benchmark
    soj 1099. Packing Passengers
  • 原文地址:https://www.cnblogs.com/micronm/p/1893165.html
Copyright © 2011-2022 走看看