如何在 Visual Basic 6 中解码字符串

Posted

技术标签:

【中文标题】如何在 Visual Basic 6 中解码字符串【英文标题】:How to decode a string in Visual Basic 6 【发布时间】:2016-02-11 23:11:27 【问题描述】:

我正在尝试在我的Visual Basic 6 中读取 .DB (Paradox 5) 文件。 除了编码/字符集,一切都很好。它显示为 Iieiei 75a 而不是西里尔字符串。

这是我的 ODBC 连接字符串:

Driver=Microsoft Paradox Driver (*.db );DriverID=538;Fil=Paradox 4.X;DataCodePage=ANSI;BDE=2;CollatingSequence=ASCII;AutoTranslate=No;DBQ=C:\Database;DefaultDir=C:\Database

请注意,Borland Database Desktop 之类的软件可以毫无问题地显示此字符串。在另一台 PC 上也一切正常。

我通过 regedit 设置了以下设置,但没有帮助:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase] 
"DataCodePage"="ANSI" 
"BDE"=dword:00000002 

我也试过用CharToOem/Oem2Char Win API函数,没用。

有什么想法吗?

【问题讨论】:

当您告诉它使用ANSI 时,它可能使用当前会话的代码页?也许插入您的数据编码的确切代码页以使其普遍工作? 【参考方案1】:

好的,我已经通过更改以下注册表值解决了这个问题:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase] 
"DataCodePage"="ANSI" 
"BDE"=dword:00000002 

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
"1252"="1251.nls"

上次设置已解决问题。

【讨论】:

以上是关于如何在 Visual Basic 6 中解码字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Visual Basic 6 中对齐 RichEdit 粘贴对象位置?

Visual Basic 6 中的 ADODB 连接字符串

如何在 Visual Basic 6.0 中创建带有文本框的数组

如何在Visual Basic 6.0中使用主键在一个表中使用外键获取记录

如何在 Visual Basic 6 ListView 上进行多列排序?

如何在此 Access-SQL server-Visual Basic 6 (ADO) 表单中不包含重复元素(主详细信息)