【发布时间】:2011-08-12 09:34:25
【问题描述】:
我在尝试将 vb6 中某些变量的内容输出到文本文件时遇到问题。问题是,当扩展 ASCII 中的特殊字符显示为 ä、ü、á 时,它会在输出中转换为匹配的基本 ASCII 字符,如 a、u、a。
我尝试像 UTF-8 一样导出它,然后正确显示字符,但我需要输出为 ASCII。此外,对我来说,文件名通常可以包含这个字符(ä、ü、á...)而对我来说看起来很奇怪。
这可能是因为“ASCII”字符集只是基本字符集而不是扩展字符集吗?也许是因为 Windows 中配置的 CodePages?我尝试了其中几个(德语、英语),结果相同。
这是我正在使用的代码:
Set fileStream = New ADODB.Stream
If Not fileStream Is Nothing Then
inputString = textPreAppend + inputString
fileStream.charSet = "ASCII"
fileStream.Open
fileStream.WriteText inputString
fileStream.Flush
fileStream.SaveToFile fileName, adSaveCreateOverWrite
fileStream.Flush
fileStream.Close
End If
Set fileStream = Nothing
提前致谢!
【问题讨论】:
-
作为参考,本例中的“ascii”指的是iso8859-1/codepage 1252。
-
很高兴认识 Deanna,我想我可能混淆了字符集。我刚刚做了一个测试,我取消了我认为是基本 ASCII 的字符集 20127(US-ASCII),然后输出文件完全为空。我认为这证明我使用的是基本 ASCII 而不是扩展的 ASCII(1252),但是在区域设置中选择了此代码页。也许我必须在代码中强制它?
标签: vb6 character-encoding ascii ado codepages