在VB6中读取带重音的文件名
发布时间:2020-12-17 00:11:09 所属栏目:大数据 来源:网络整理
导读:我有一个VB6应用程序,它执行文件夹的目录列表并获取文件名.其中一些是重音,例如“Guimar?es.txt”(带有波浪号的小A). VB Dir函数和FileSystemObject函数都无法识别重音字符,而是将文件名返回为“Guimar?es.pdf”,因此我随后无法打开该文件.我可以在 Windows
我有一个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程序的语言”以匹配文件名中使用的语言. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |