UltraEdit里unicode编码格式的代码用arm-elf-gcc编译的问题

[复制链接]
 楼主| alphal 发表于 2008-11-15 23:36 | 显示全部楼层 |阅读模式
问题比较复杂,只好从头说起。<br />&nbsp;&nbsp;&nbsp;&nbsp;我们希望在LCD上能显示日文,韩文字符,所以要用unicode编码,我们现用的开发工具是MDK(Keil3)+arm-elf-gcc,但MDK不支持unicode编码,还好我们找到好几款能编辑unicode编码的编辑器,我们打算选用UltraEdit。<br />&nbsp;&nbsp;&nbsp;&nbsp;UltraEdit中文件的保存时与unicode相关的格式有7种(UTF-8/UTF-16/UTF-8无BOM/UTF-16无BOM/UTF-16-Big&nbsp;Endian/UTF-16-Big&nbsp;Endian-无BOM/Unicode-ASCII&nbsp;Escaped)。<br />&nbsp;&nbsp;&nbsp;&nbsp;分三个方面来对比这7中格式的不同:<br />&nbsp;&nbsp;&nbsp;&nbsp;1、日文、韩文的输入<br />&nbsp;&nbsp;&nbsp;&nbsp;除Unicode-ASCII&nbsp;Escaped格式保存的时候输入的日文韩文字符都显示为其unicode编码值,其它6种格式都能正常显示输入的字符。<br />&nbsp;&nbsp;&nbsp;&nbsp;2、切换16进制编辑模式查看<br />&nbsp;&nbsp;&nbsp;&nbsp;切换16进制编辑模式,UTF-8及其相关格式编码保存的文件中的英文字符显示为其ASCII码+00,和UTF-16及相关格式保存时,没什么区别,UTF-16也是加一个00。(不讨论文件开头的FF&nbsp;FE)。<br />&nbsp;&nbsp;&nbsp;&nbsp;除Unicode&nbsp;-&nbsp;ASCII&nbsp;Escaped格式时日文、韩文在16进制下显示为字符unicode码值对应的ASCII码值外,其它格式下都显示为字符unicode编码值(而非UTF-8或UTF-16编码值)。<br />&nbsp;&nbsp;&nbsp;&nbsp;3、用arm-elf-gcc编译这7种格式的文件<br />&nbsp;&nbsp;&nbsp;&nbsp;UTF-8格式文件保文件头有不能识别的字符,估计是BOM的问题(但这个BOM应该不是指文件头的FF&nbsp;FE,因为UTF-8无BOM格式保存的时候也有这个FF&nbsp;FE,不知道这个BOM怎样才能看到),UTF-16及其相关格式的文件都报“null&nbsp;<br />character(s)&nbsp;ignored”的警告,估计是UTF-16双字节的问题,只有UTF-8格式的文件能正常通过编译。据说gcc约定只能处理UTF-8的编码。奇怪的是Unicode-ASCII&nbsp;Escaped格式文件中的“u”符号会引起报错“universal&nbsp;<br />character&nbsp;names&nbsp;are&nbsp;only&nbsp;valid&nbsp;in&nbsp;C++&nbsp;and&nbsp;C99”,这个符号招惹谁了??<br />&nbsp;&nbsp;&nbsp;&nbsp;综上所述,问题罗列如下:<br />&nbsp;&nbsp;&nbsp;&nbsp;1、除Unicode-ASCII&nbsp;Escaped格式是什么意思,为何输入的日文/韩文字符都直接成了其码值转换了?“u”符号招惹谁了,C++和C99不识别?看来这个格式是不适合了。<br />&nbsp;&nbsp;&nbsp;&nbsp;2、UTF-8/UTF-16中的BOM是什么,在哪儿,为何在16进制编辑模式下都看不见?FF&nbsp;FE算什么?16进制编辑的时候,这两个模式的文件没什么区别,UTF-8是ASCII字符加00,UTF-16也是加一个00,但在用gcc编译的时候又结果不一样,那他们的不同体现在什么地方,怎样能看到?<br />&nbsp;&nbsp;&nbsp;&nbsp;3、UTF-8和UTF-16及其相关格式保存的文件在16进制编辑模式下看到的日文/韩文字符都是显示的其Unicode编码值(两byte),而不是UTF-8编码值,这是为何??<br />&nbsp;&nbsp;&nbsp;&nbsp;4、假设上问没有问题,那么UTF-8无BOM这种格式的文件是否就是我想要找的,也就是:输入日文/韩文,在内存中实际保存的是其Unicode编码,然后我可以以该编码值来查字符点阵表,来显示了?<br />&nbsp;&nbsp;&nbsp;&nbsp;5、我们这种方式可行吗:UltraEdit下编辑文件,以UTF-8无BOM格式保存,用arm-elf-gcc/armasm编译,armlink连接,然后fromelf产生可执行文件?<br />&nbsp;&nbsp;&nbsp;&nbsp;第一次处理这方面的问题,希望各位同仁多多指点,感激不尽!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

112

主题

473

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部