文本文件的编码方式判断

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可以得到某个数据的编码方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值