日期:2014-05-16  浏览次数:20424 次

FileSystemObject读由WORD另存为的XML时中文乱码问题
用FileSystemObject读由WORD另存为的XML时中文成了乱码,而把XML文件全选另存为TXT文件后正常,二进制比较发现两个文件的中文编码不一样,XML文件是 "UTF-8 ",
部分源码如下:
var   fso   =   new   ActiveXObject( "Scripting.FileSystemObject ");  
var   stfile=fso.GetFile(Server.MapPath( "upload/ "+Session( "fname ")));
var   ststream=stfile.OpenAsTextStream(1,0);
var   temp= " ";
while(!ststream.AtEndOfStream)
{
temp=ststream.ReadLine();
Response.Write(temp+ " <br> ");
var   re   =   / <ns0\:正确答案> (.*?) <\/ns0\:正确答案> /gi;
re.test(temp);
temp=RegExp.$1;
Response.Write(ststream.Line+ ": "+temp);
}
ststream.Close();

------解决方案--------------------
流的字符集好象是改不了,那你就只能把那个xml转换一下了。把xml用记事本打开,然后另存为,保存类型选择“所有文件”,编码选择“ansi”。这样保存下来的xml就可以直接读了,不是乱码。
暂时没找到好的解决方法。