您的位置:首页 > 其它

文本文件的编码方式判断

2013-08-22 00:28 225 查看
11. 如何判断一个文本文件是ANSI还是Unicode?

判断如果文本文件的开头两个字节是0xFF和0xFE,那么就是Unicode,否则是ANSI。

12. 如何判断一段字符串是ANSI还是Unicode?

用IsTextUnicode进行判断。IsTextUnicode使用一系列统计方法和定性方法,以便猜测缓存的内容。由于这不是一种确切的科学方法,因此,IsTextUnicode有可能返回不正确的结果。

13. 如何在Unicode与ANSI之间转换字符串?

Windows函数MultiByteToWideChar用于将多字节字符串转换成宽字符串;函数WideCharToMultiByte将宽字符串转换成等价的多字节字符串。
 
如果是记事本保存的txt文件,如果文件头没有编码信息,通常都是ASCII码如果存在编码信息,就根据编码信息解码

记事本保存 Unicode 编码的文本,会在文件头加两个字节表示该文本文件是Unicode 编码,这两个字节内容16进制表示为 FF FE

记事本保存 Unicode big endian 编码的文本,会在文件头加两个字节表示该文本文件是 Unicode big endian 编码,这两个字节内容16进制表示为FE FF

记事本保存 UTF-8 编码的文本,会在文件头加三个字节表示该文本文件是UTF-8 编码,这三个字节内容16进制表示为 EF BB BF

记事本保存 ASCII 编码的文本,不会在文件头加任何字节,直接存储 ASCII码内容,所以只要判断文件头不是  

FF FE 和 FE FF 和 EF BB BF就可以认定为 ASCII 编码  

如果对不是记事本保存的 txt 文件,只能用户自己选择用那种编码解码,没有现成的API可以得到某个数据的编码方式。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: