我用下面代码导出了一个xml ,可是中文是非GBK正常内容,查看源码的时候出现一些乱码 ,不知道为什么dim test As New ADODB.Recordset
test.Open "Selct * From Table1"
test.Save "C:\aa.xml", adPersistXML

解决方案 »

  1.   

    你ADO是什么版本的?我导出没发现乱码.
      

  2.   

    直接打开是不会出现乱码,可是在IE上按右键有个“查看源码”,然后就用文本编辑器打开这个XML文件,里面的字段内容就是乱码了
      

  3.   

    如果直接打开是不会有问题的,但在IE上用右键选“查看源码”,然后就用文本编辑器打开这个XML文件,里面的字段值就是乱码了
      

  4.   

    '工程--->引用--->Microsoft ActiveX Data Object 2.5(版本号)    Dim CN   As New ADODB.Connection                '定义数据库的连接
        Dim Rs   As New ADODB.Recordset
        CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"    CN.Open
        Rs.CursorLocation = adUseClient
        Rs.Open "select * from employees", CN, adOpenDynamic, adLockOptimistic    Rs.Save "C:\aa.xml", adPersistXML用引用的是2.5,正常!!
      

  5.   

    这是因为Unicode 字符,和UTF_8 编码的问题吧...
    所以xml里的中文是经过编码后的形式
      

  6.   

    To :  bu_wen(不文) 肯定是UTF_8编码问题,不过,经测试好象并非是完全标准的UTF_8,好象是微软自己搞的一些编码
      

  7.   

    我用的是ADO 2.6做的,我调试出来很正常啊,没有乱码.我想可能和你系统有关,我在win2k+sp4下调试的.用记事本看也没发现乱码.你用的是什么系统?
      

  8.   

    我不知道你的乱码是什么样的.
    有些xml文件中中文会按 Unicode 编码的方式(但这也不是乱码)
    我从网络上下载了 几个 wap 页面 看了一下,他的文件里的中文就是显示的Unicode编码.而不是中文...
    所以我写了两个函数 来转换
    Private Function Covert(strIn As String) As String
    'Unicode 转换为 中文函数
        Dim i As Long
        Dim bt(1) As Byte
        Dim hr As String
        For i = 1 To Len(strIn) Step 4
            bt(1) = Val("&H" & Mid(strIn, i, 2))
            bt(0) = Val("&H" & Mid(strIn, i + 2, 2))
            hr = bt
            Covert = Covert & hr
        Next
    End FunctionPrivate Function StrToUnicode(strIn As String) As String
    '中文
    Dim buf() As Byte
    Dim i As Long
    buf = StrConv(strIn, vbUnicode)
    For i = 0 To UBound(buf()) Step 2
       StrToUnicode = Hex(buf(i)) & StrToUnicode
    Next
    End Function
    '比如欢迎 的 '欢' 在xml文件里 就可能是 &#x6B22
    'StrToUnicode("欢") = "6B22"
      

  9.   

    保存XML文件时设置encoding="GBK"