level 1
vb6.0向txt写入几个汉字,乱码,请大家帮忙,谢谢了
2024年10月25日 10点10分
1
level 1
写入的汉字有的是正常的,有的是不正常,例如,写玉米就正常,写煤炭就是乱码
2024年10月26日 07点10分
3
level 13
如果是保存到txt文件后读取到程序文本框显示的话,就不需要保证记事本中显示正常。
如果要让txt文件用记事本打开正常,需要转码后写入txt。
你可以直接用记事本保存乱码的文字,然后用16进制查看工具查看文件,文件头部有FF FE标记。所以你VB直接用open保存当然不能保证记事本能正确识别文字存储格式
像你的字符串”煤炭“,需要用Unicode存储才能让记事本正确显示
2024年10月26日 10点10分
6
谢谢您,我确实是用一台电脑写入txt,另一台电脑读取这个txt,读取的也是正常的汉字“煤炭”
2024年10月26日 22点10分
想在两台电脑间传递这个货物名称,是不是用写入txt最简单?写入一个数据库可以吗?两台电脑都读取这个数据库,读取数据库这个方法好吗?
2024年10月26日 22点10分
我以前没注意有这个现象啊,gb2312也一直是正常显示的。是从win11的记事本开始的还是win10?还有,我文本工具一直用的是emeditor6.0,虽然字多点还能正常显示,煤炭两个字也不能正确识别了,需要自己选择编码。
2024年10月28日 08点10分
level 13
VB内部String是按Unicode存储,但实际操作中VB会自动在Unicode到Ansi中转换。比如String原先是Unicode存储的,当open写入文件时按Ansi写入文字的,这就存在问题了(你直接将字符串或String变量写入文件就会自动转换)。但你可以略过这一步,就是先将字符串或String变量赋值给Byte数组,这样byte数组存储的就是Unicode的字符串,并不会转换。
open "xxx" for ... as #1
print #1,"煤炭" '这里的字符串会从Unicode转Ansi后写入txt文件
close #1
但是,可以这样解决
dim a() as byte
a ="煤炭" '这里VB不会转换成Ansi
open "xxx" for binary access write as #1 '以二进制写入
put #1,,&HFEFF '写入头部标记,没有这行记事本无法正常显示
put #1,,a '将字节数组写入txt文件,不会转换
close #1
2024年10月26日 10点10分
7
谢谢,太感谢了
2024年10月26日 22点10分
level 1
想在两台电脑间传递这个货物名称,是不是用写入txt最简单?写入一个数据库可以吗?两台电脑都读取这个数据库,读取数据库这个方法好,还是读取txt的方法好呢?
2024年10月27日 22点10分
8
两台电脑之间传递不应该用socket做网络通信吗?
2025年07月09日 01点07分
level 13
简单的就txt,复杂的可以数据库,没用规定一定要数据库
2024年10月28日 01点10分
9
level 1
vb6chr.dll
下载这个复制到system32
2025年07月04日 03点07分
11