我们有一个用Java编写的应用程序,它读取由VB6应用程序生成的一些文本。
问题是:这个VB6应用程序使用一些特殊字符(如ç、ã、á)生成输出,我们不知道它们使用了哪种字符集。
因此问题是:VB6是否使用默认字符集?如果是,那它是什么?
如何将数据从一个地方传输到另一个地方?通过文件吗?如果是,那么它将使用机器默认编码。我不知道获取它的Java代码,但在C#中,它是Encoding.Default...
好的,
这是我们发现的:我们不知道是否因为我们的VB6应用程序在命令行上执行,但它实际上使用了MS-DOS环境的默认字符集,对于我们来说是windows-1252。
所以,我们只需要将我们的Java代码更改为类似下面这样的形式:
InputStreamReader inputReader = new InputStreamReader(input, "windows-1252");
一切都运行良好!
也许不仅是因为 MS-DOS 环境,而是因为我们从 Microsoft Access 数据库中获取了这些数据。个人认为这可能是我们问题最有可能的解决方案。