使用的VS2003 +.net 1.1平台
SQL2000 的数据库 + Report server 2000
在报表项目中设计的报表可用正常的预览,显示的是中文
但是如果通过IE来查看报表的话,原来的中文全部显示成???乱码检查了一下报表的data文件是UTF-8 的编码格式
在web.config中也是使用的 也是UTF-8的编码格式
但是显示出来的报表部分是中文,部分是乱码
而且直接使用IIS查看也是一样的乱码谢谢各位高手不吝赐教啊 。。谢谢了 

解决方案 »

  1.   

    asp.net默认的编码为utf-8,当与其它平台交互处理的字符串中有中文时往往会出现乱码,这是由于其它平台多采取GB2312编码,要解决这一问题,可编写一个函数,对字符串先转换再处理就行了,下面是该函数的源代码:Imports System.Math Function URLEncoding(ByVal vstrIn As String)
            Dim strReturn As String
            strReturn = ""
            Dim i As Integer        Dim ThisChr As String        Dim innerCode, Hight8, Low8 As Integer        For i = 1 To vstrIn.Length            ThisChr = Mid(vstrIn, i, 1)            If Abs(Asc(ThisChr)) < &HFF Then
                    strReturn = strReturn & ThisChr
                Else
                    innerCode = Asc(ThisChr)
                    If innerCode < 0 Then
                        innerCode = innerCode + &H10000
                    End If
                    Hight8 = (innerCode And &HFF00) \ &HFF
                    Low8 = innerCode And &HFF
                    strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
                End If
            Next
            URLEncoding = strReturn
        End Function
      

  2.   

    不好意思各位
    我测试了一下,如果在asp.net里面改成gb2312,那么传进来的字符串是无法识别的
    因此 requestEncoding="utf-8" 是不能改的
    但是如果 将responseEncoding 改成 "gb2312",报表还是一样的乱码,不能显示中文
    关键是报表的编码是xml格式 默认的就是utf-8
    <?xml version="1.0" encoding="utf-8"?>
    所有的报表都一样,在这里面改编码是不现实的请问一下到底什么原因导致   部分代码   不能正常显示中文
    到底如何才能正常显示啊??
    而且关键是asp.net和report server都用的是utf-8格式啊
    难道和iis有关吗,iis有没有修改编码格式的地方啊?
      

  3.   

    顺便说一下
    web.config里面使用的也是utf-8<?xml version="1.0" encoding="UTF-8" ?><globalization requestEncoding="utf-8" responseEncoding="utf-8" />