我正在尝试从vbs脚本中读取xml文件。 Xml以utf-8编码,并具有适当的标题
从vbs脚本我使用microsoft xmldom解析器来读取xml:
Dim objXMLDoc
Set objXMLDoc = CreateObject( "Microsoft.XMLDOM" )
objXMLDoc.load("vbs_strings.xml")
在xml内部我正在尝试使用&#nnn;
表示法按代码编写字符。然后我从vbscript中读取这个字符并尝试使用Asc()
函数获取它的代码。对于某些字符,它工作正常,读取代码等于一个写入。但对于某些字符Asc()
始终返回代码63
。它可能是什么?
示例:
如果xml包含<section>Ã<section>
,并且在脚本中我有Section
变量来表示这个xml节点,那么代码:
Asc(Section.Text)
将返回值195,它是ok
。
如果xml包含<section>n<section>
,则代码为:
Asc(Section.Text)
将返回值110,它是ok
。
但是,如果xml包含<section>‚<section>
或<section>œ<section>
或<section>Œ<section>
Asc(Section.Text)
将返回值63,这绝对不是好事。
你知道为什么吗?
答案 0 :(得分:2)
代码点decimal 130,156和140与Unicode字符集中的任何字符都不对应(未定义123-192)。 Asc正在使用的默认字符映射器会将此类错误映射到?字符63.这些代码点会映射到哪些字符?
我怀疑您想要的代码是:‚
œ
和Œ
答案 1 :(得分:2)
改为使用AscW:
http://msdn.microsoft.com/en-us/library/zew1e4wc%28VS.80%29.aspx
编辑:那就是说,AnthonyWJones可能是正确的,你的文件要么使用字符引用,要么错误地声明了输入编码。