问题描述
我通过右击项目,选属性/资源,添加文本文件,然后通过Resources来获取字符串我发现了一个奇怪的现象:添加文件时并没有指定文件的编码方式,但是无论我添加何种编码的文件,结果都不会产生乱码!有人可能会说:那是系统自动识别文件的字节顺序标记,但是这种解释是不合理的,因为即使我使用没有字节顺序标记的文件,也不会产生乱码!请问这是怎么回事?另外,无论是否有字节顺序标记,记事本似乎都可以判断出文件的编码,请问是怎么实现的?
解决方案
解决方案二:
要不你加入资源干啥?
解决方案三:
沙发先做了再看题
解决方案四:
unicode吧
解决方案五:
每一种编码都有自己的特征,编码自动识别这有什么好奇怪的,你用的IE从很老的版本就有这功能了。
解决方案六:
编码自动识别这有什么好奇怪的自己能写代码实现吗?(前提是没有字节顺序标记)你写写看
解决方案七:
字节顺序标记是啥?
解决方案八:
你自己写个程序生成文本文件试试看。记事本没有出现乱码是因为它在文件开头加了2个字节……
解决方案九:
自动识别有时候会有错误,比如Ansi保存的"联通"二字,被记事本重新打开的时候就成文乱码了,就是因为"联通"得头几个字节和UTF8编码的头几个字节的特征码重叠了,导致记事本当作UTF8读取了,不信可以试试。具体的方法你可以查询ANSI,UNICODE,UTF8等编码的知识,其实不难的。
解决方案十:
果然如楼上所说,BS一下MS先……记事本打开文本出现乱码也不算什么,关键是它自己保存的文件自己打开也出乱码-_-#不知道哪个家伙自以为是Ansi类型的就不加字节表示,MS就没发现过这个bug?
解决方案十一:
呵呵,毕竟自动的总会有点兼容问题,这个算不是MS的bug,这是由于各标准之间的兼容问题,微软也没有办法。但是如果你知道文件编码方式,从记事本菜单打开文件,并且手动选择编码方式,就不会出现这样的错误了。
解决方案十二:
自动判断编码是可以的。网上有代码。太长了。没仔细看。。。
解决方案十三:
顶
解决方案十四:
等待高人解答
解决方案十五:
up