以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]Encoding.Default在不同的电脑上显示不同 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=158691) |
-- 作者:chnfo -- 发布时间:2020/11/29 11:02:00 -- [求助]Encoding.Default在不同的电脑上显示不同 发现一个奇怪的现象 Dim s As String = FileSys.ReadAllText("D:\\CS.txt", Encoding.Default) output.show(s) 就这一句,在电脑A上执行,没有乱码 但在B电脑上执行,显示的有乱码,把 Encoding.Default删除,就与A电脑上执行的结果一致 但在电脑A上执行Dim s As String = FileSys.ReadAllText("D:\\CS.txt"),又显示为乱码 这个该如何是好啊? 补充:文件路径可能会有中文(上面的D:\\只是示意,可能是D:\\备份文档\\cs.txt),文件内容里面有中文
[此贴子已经被作者于2020/11/29 11:04:46编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/11/29 21:01:00 -- 那就指定编码:Dim s As String = FileSys.ReadAllText("D:\\CS.txt", Encoding.UTF8) |
-- 作者:chnfo -- 发布时间:2020/11/30 9:06:00 -- 我是说本来txt里的文本正常的,但是A电脑是win7,必须用default才能读出来显示正常;但同一个文件,在B电脑上win10加了default不正常,去掉反而正常了。 这样不行啊,同一个txt配置文件,用来做系统打开前的内容校验,不是闹笑话了?A电脑可以,B电脑不行? |
-- 作者:有点蓝 -- 发布时间:2020/11/30 9:08:00 -- Encoding.Default不是不确定的,根据不同系统,选择的不同编码方式会有不同。但是文件的编码是固定的,直接指定编码即可 |
-- 作者:chnfo -- 发布时间:2020/11/30 9:24:00 -- 现在两台电脑在面前,一台win7中文版,一台win10中文版。同一个狗、同一个文本文件(文件名、内容完全一致,里面有中文)。执行readalltext(路径,encoding.default),一个显示乱码,一个正常;如果去掉default,就正好反过来。如果改成utf8,两个除了中文部分,其它正常。网上度了一下,说是不同系统可能字库不同,这不要命了? [此贴子已经被作者于2020/11/30 9:24:59编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/11/30 9:28:00 -- 如果中文部分有问题,说明不是utf8,再试试其它编码呗 Dim s As String = FileSys.ReadAllText("D:\\CS.txt", Encoding.GB2312)
ReadAllText(File, Encoding) File: 要读取的文件的文件名和路径 Default Default表示系统编码,对于中文操作系统,通常是GB2312 |
-- 作者:chnfo -- 发布时间:2020/11/30 9:29:00 -- 网上有人说可以用encoding.getencoding(“gb2312”),估计可以试试。直接用encoding.gb2312执行不了的 [此贴子已经被作者于2020/11/30 9:30:59编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/11/30 9:37:00 -- Dim s As String = FileSys.ReadAllText("D:\\CS.txt", Encoding.GetEncoding("GB2312")) |