oli*_*old 6 vb6 internationalization
我有一个VB6应用程序,它执行文件夹的目录列表并获取文件名.其中一些是重音,例如"Guimarães.txt"(带有波浪号的小A).VB Dir函数和FileSystemObject函数都无法识别重音字符,而是将文件名返回为"Guimar?es.pdf",因此我随后无法打开该文件.我可以在Windows资源管理器中正确查看该文件
这只发生在运行Windows Server 2003 R2的一个实时环境中.在我们的测试系统中,我们可以正确读取文件,虽然这些主要是Windows 2008和Windows 7.我最初认为它归结为FSO版本,但由于"Dir"给出了相同的结果,我不再这么认为.此外,当我将文件的名称写入日志文件时,它也是不正确的.所以我认为在很早的阶段它无法处理角色,并用问号替换它.
我需要建立的是问题的原因:是Windows版本还是我的区域设置(我无法查看,因为我的帐户被锁定),我该怎么做才能解决问题.目前,我已经要求用户不要使用这些字符,但这不是一个长期的解决方案.
谢谢.
好的,从磁盘读取的文件名使用 unicode。当您尝试显示此内容时,所使用的字体不支持该字形,因此它显示“?”,但将其写入磁盘会写入正确的表示形式。当它被传递给文件函数时,它会被“转换”为 MBCS 或另一个字符集,然后会中断。
您可以更改代码以使用本机范围的 Win32 API 调用,或者仅更改“非 unicode 程序的语言”以匹配文件名中使用的语言。
| 归档时间: |
|
| 查看次数: |
637 次 |
| 最近记录: |