VB6中的字符编码问题

3

我有一个应用程序,用于存储txt、word和pdf文件。当用户选择查看选项时,它会显示文档。

我们使用以下代码将Unicode字符串转换为字节数组。

   aANSISString = StrConv(VerToInsert.FileBuffer, vbFromUnicode)

文档将由特定文档类型的默认应用程序查看。例如,.doc文件使用Microsoft Word等。我面临的问题是当系统语言环境更改为“非英语”,例如阿拉伯语(代码页1256)时,数据会损坏且无法查看。但一旦系统语言环境更改为英语,一切正常。

我在txt文件中没有遇到这个问题。有人能告诉我原因或指向参考页面吗?


1
StrConv() 函数有一个可选的第三个参数:LCID,可能会有所帮助。 - Bob77
1个回答

0

补充Bob77的评论 - 从Office开发中心关于第三个参数LCID的文档(https://msdn.microsoft.com/en-us/library/office/gg264628.aspx):

LCID - 可选。如果不同于系统LocaleID,则为LocaleID。(系统LocaleID是默认值。)

当您没有指定LCID时,StrConv依赖于系统语言环境。

您应该始终指定LCID以防止用户与英语具有不同的语言环境。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接