【问题标题】:VB6 text appears as gibberish in one EXE but Hebrew in anotherVB6 文本在一个 EXE 中显示为乱码,但在另一个 EXE 中显示为希伯来语
【发布时间】:2012-05-17 10:25:05
【问题描述】:

我有奇怪的问题和对 VB6 的了解很少,

我有一个 EXE 文件,它从文本文件中获取文本(用于按钮标题)。
这个我没有代码的 EXE 可以正确显示所有希伯来语文本。

我已经构建了另一个 EXE 文件(与上一个相同)并且所有功能都可以正常工作,但是它将所有希伯来语都显示为胡言乱语!!

我的文本文件编码是 Unicode。

你能帮帮我吗? vb6 exe有编码吗?

【问题讨论】:

标签: text encoding localization vb6 internationalization


【解决方案1】:

默认的 VB 窗体/控件字体不支持所有“外来”字符。
如果您在运行时将字体设置为“MS Shell Dlg”,那么 Windows 会将其转换为应处理大多数语言的 Windows 版本的默认 UI 字体。

您还需要检查文件的编码。如果是 UTF-8 或特定代码页,则需要在阅读后使用MultibyteToWidechar() 函数转换为 UTF-16 以便在 VB 中使用。

【讨论】:

  • +1。您还需要将 PC 代码页设置为希伯来语(控制面板、区域设置、非 Unicode 程序的语言)
  • 谢谢,但我没有退出理解你的意思,我在我的代码中编写的什么 shell 可以正确读取希伯来语?我的文本文件是 Unicode。另一个 EXE 使用相同的文件,所以问题出在我的 EXE 中,而不是文件或 PC 环境中
  • @MarkJ 我的 PC 代码页设置为希伯来语,另一个 EXE 使用相同的文件,所以问题出在我的 EXE 中,而不是在文件或 PC 环境中
  • @DorCohen:哪种 unicode 格式? UTF-8? UTF-16? UTF-8 需要转换,而 UTF-16 需要特定的读取方式。至于显示它,只需按照我的建议设置控件的字体即可。
  • @Deanna 代码页面与显示非常相关。 VB6 窗体和控件只能显示当前代码页支持的字符。
【解决方案2】:

解决此问题的完美解决方案是将 font.Charset 更改为代表 HEBREW_CHARSET 的 177。
例如:

Text1.Font.Charset = 177

http://www.example-code.com/vb/vb6-display-unicode.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    相关资源
    最近更新 更多