打开ANSI csv文件并以utf-8的形式读取内容

时间:2015-03-24 22:46:08

标签: utf-8 vbscript adodb

我在服务器上有一个编码为ANSI的csv文件,想要打开它,处理并保存数据库中的内容。 我对重音字符有无限的问题,如“àèìò”,改为“?”。

html标头中的内容设置为utf-8。 这是我的代码

Response.CharSet = "UTF-8"

...

Set objStream = CreateObject("ADODB.Stream")
objStream.Type = 2
objStream.CharSet = "utf-8"
objStream.Open
objStream.Position = 0
objStream.LoadFromFile( path )

strData = objStream.ReadText()
Response.write(strData) '<== just to see

objStream.Close
Set objStream = Nothing

起初我使用的是单个FileSystem对象,但是读到它在处理编码时遇到了更多问题

1 个答案:

答案 0 :(得分:1)

在内部,VBScript字符串是UTF-16编码的。读取的IO函数必须被告知/假设默认使用正确的源编码将源转换为UTF-16。写入的IO函数必须被告知/假定为默认的所需输出编码,以将UTF-16转换为所需的编码。

如果你的文件真的(某种)ANSI那么你的

objStream.CharSet = "utf-8"

错了。它应该是您的文件真正使用的编码名称(cpXXX,ISO_YYY,ZZZ)。

您是否使用FileSystemObject进行测试?也许它会猜对了,没有额外的努力你的问题就解决了。