回 帖 发 新 帖 刷新版面

主题:[讨论]字符串显示不正常了???

已经上传了文件帮忙看看。。。。

用记事本打开是 ABC.txt 显示“快乐” 两个字符正常
然后我用以下的方法打开却显示 “蹇箰” 不正常是乱码

                    Open "C:\ABC.txt" For Binary As #1                    
                    
                    Do While Not EOF(1)
                            
                                   Line Input #1, MyVarname
                    Loop
                    
                    Text1.Text = MyVarname

                    Close #1

用十六进制打开 ABC.txt 文件 是显示 E5 BF AB E4 B9 90
正常的“快乐”两字符的十六进制应该是 BF EC C0 D6

一个字符两个字节啊?
请高手指教指教。。。。谢谢!!

回复列表 (共6个回复)

沙发

LZ的问题就汉字编码的问题。

“快乐”UTF-8编码是 E5 BF AB E4 B9 90

而GB2312编码就是BF EC C0 D6

代码应该也成下面的:
[code]
Open "C:\ABC.txt" For Input As #1  '这里用Input不要用Binary
                    
Do While Not EOF(1)

Line Input #1, MyVarname

Loop
                    
Text1.Text = MyVarname

Close #1
[/code]

这样的输出结果就是“快乐”,不是乱码。

板凳

打开的方式已经改了,但是依然显示不正常???[em7]

3 楼

发工程来看看?

4 楼


把 E5 BF AB E4 B9 90 用二进制保存,再用记事本打开就是“快乐”两个字符

就是怎么样才能把十六进制 E5 BF AB E4 B9 90 正常的显示出字符串"快乐"两个字符

要怎么样写代码???谢谢。。

5 楼

已经上传了文本文件大家帮忙看看。。。。

6 楼

因为你是以UFT-8编码保存的,所以打开文件时要进行转换,可以参考我以前的发帖《编写超级记事本必需的十六个功能源代码(三)》中的“九、读、写Unicode和UFT-8编码的文本”(http://bbs.pfan.cn/post-250830.html)

我来回复

您尚未登录,请登录后再回复。点此登录或注册