分类：电脑/网络-程序设计
问题：如何解救VB6.0写的读取文本文件的程序在Vista下操作失效？? 
如何解救 6.0 写的读取文本文件的程序在 Vista 下操作失效？本人有一个用 VB6 开发的文本文件处理程序，当时是在 Vista 的环境下开发的，用了三、四年，在Vista 和Windows XP 环境下都运行过，一直很稳定。但最近该软件在 Vista 系统下出现了无法正确地一次读取定长文本内容，或全文内容的错误，试用了多种方法，就是无法在重新在装了Vista的机器上，用VB6的文件处理函数把文本正确读出来。（这样的机器的 LCID 多半是中文简体。）该软件在 Windows XP 机器上依然正常运行。如果把一个中、英文和数字混合如何解救 6.0 写的读取文本文件的程序在 Vista 下操作失效？本人有一个用 VB6 开发的文本文件处理程序，当时是在 Vista 的环境下开发的，用了三、四年，在Vista 和Windows XP 环境下都运行过，一直很稳定。但最近该软件在 Vista 系统下出现了无法正确地一次读取定长文本内容，或全文内容的错误，试用了多种方法，就是无法在重新在装了Vista的机器上，用VB6的文件处理函数把文本正确读出来。（这样的机器的 LCID 多半是中文简体。）该软件在 Windows XP 机器上依然正常运行。如果把一个中、英文和数字混合的文本文件，分别用 ANSI、Unicode 和 UTF-8 内码存盘后，试验结果相同。1,用“open --- input ”的方法，把内容读入一个 variant 型变量，将可以进行逐句读入，并能读完全文，不出错误。2， 用“open --- line input ”进行逐行读入，可以读完全文，不出错误。3， 用“open --- binary --- get ”的方法，全文读入到一个 byte型的大数组，然后再通过 strConv 函数和 Cstr 函数的转换， 出现乱码。4， 用“open --- input --- inputb”的方法，全文读入到一个 byte型的大数组，然后再通过 strConv 函数和 Cstr 函数的转换， 出现乱码。5， 用“open --- input --- input$”的方法，定长读入数百个字符到一个 定长的String变量，无论是否用 strConv 函数和 Cstr 函数的转换，都出现乱码。6， 用   的IO函数，可以正确地读取单个字符，整行字符，和一次读入整篇文章。请问，有没有什么办法，比如 API 函数什么的，绕过操作系统的 LCID 默认页的变动所造成的这种文本文件的读入不稳定，来挽救这个软件，让它在 Vista 下继续运行？（我觉得这是“微软”三天两头地给 Vista 升级打补丁造成的，因为该软件曾经在装有Vista的机器上跑过三、四年了，只是最近才出现问题。）
回答：这是操作系统的编码格式造成的
我建议你修改你的程序，对使用byte、二进制读取文件部分进行编码格式转换；一般情况下转换为GBK格式就行了

windows系统提供编码格式转换的函数，你可以百度一把