求教一个关于文本编码格式的问题
有一个特定的语法格式,其中有一条label属性,该属性用来记录用户自行录入的信息,格式如下:
label = "备注内容";
为了解析这套语法,用antlr做了个文本解析工具。
当用这个工具处理ansi编码的文件时一切OK,然而当遇到非ansi编码格式的文本是却出了问题。
本以为只有非ansi编码格式的文本会有问题,后来发现有些含有特定语种的文本(例如文字为繁体中文,或者日文),即便是ansi格式依旧不能成功解析,但是,当我把这些文本中的内容copy出来,粘贴到另一个新建的ansi编码格式的文本中后,工具竟然可以正常工作了!
也想过程序运行时,将所有输入的文件内容转码并拷贝到一个临时文件中,这样就能确保它总能被程序解析,但是又觉得这样做似乎太笨了。
由于从未接触过有关编码格式的事情,望坛内高手支招
P.S: 现在我就在想,VS这种工具编辑环境,他们带怎么处理这类问题呢?
本以为只有非ansi编码格式的文本会有问题,后来发现有些含有特定语种的文本(例如文字为繁体中文,或者日文),即便是ansi格式依旧不能成功解析,但是,当我把这些文本中的内容copy出来,粘贴到另一个新建的ansi编码格式的文本中后,工具竟然可以正常工作了!
也想过程序运行时,将所有输入的文件内容转码并拷贝到一个临时文件中,这样就能确保它总能被程序解析,但是又觉得这样做似乎太笨了。
由于从未接触过有关编码格式的事情,望坛内高手支招
P.S: 现在我就在想,VS这种工具编辑环境,他们带怎么处理这类问题呢?
[解决办法]
估计你写的这个文本解析工具,应该是没有考虑编码问题的吧!
这个最好加进去考虑
[解决办法]
对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。啊 GBK:0xB0 0xA1,Unicode-16 LE:0x4A 0x55,Unicode-16 BE:0x55 0x4A,UTF-8:0xE5 0x95 0x8A
[解决办法]
看看include\tchar.h的内容吧。