C# RDLC报告导出为pdf时显示垃圾的Unicode(泰语)字符

C# RDLC报告导出为pdf时显示垃圾的Unicode(泰语)字符,c#,.net,vb.net,rdlc,dynamic-rdlc-generation,C#,.net,Vb.net,Rdlc,Dynamic Rdlc Generation,我在将包含Unicode字符的rdlc报告导出到pdf时遇到问题。导出泰语数据时,显示为垃圾,如下所示- 实际上是ลูกค้า。数据在网页上正确显示,但导出时显示垃圾数据 这就是我到目前为止所做的- Private Sub CreateReport(ByVal FileType As String, ByVal selectedFile As String, ByVal reportName As String) Dim warnings As Warning() = Noth

我在将包含Unicode字符的rdlc报告导出到pdf时遇到问题。导出泰语数据时,显示为垃圾,如下所示-
实际上是
ลูกค้า。数据在网页上正确显示,但导出时显示垃圾数据

这就是我到目前为止所做的-

Private Sub CreateReport(ByVal FileType As String, ByVal selectedFile As String, ByVal reportName As String)

        Dim warnings As Warning() = Nothing
        Dim streamids As String() = Nothing
        Dim mimeType As String = Nothing
        Dim encoding As String = Nothing
        Dim extension As String = Nothing
        Dim deviceinfo As String = Nothing
        Dim viewer As New Microsoft.Reporting.WebForms.ReportViewer()

        Try           

            deviceinfo = "<DeviceInfo>" &
                         "<OutputFormat>" & FileType & "</OutputFormat>" &
                         "<PageWidth>13.15in</PageWidth>" &
                         "<PageHeight>9in</PageHeight>" &
                         "<MarginTop>0.5in</MarginTop>" &
                         "<MarginLeft>0.1in</MarginLeft>" &
                         "<MarginRight>0.1in</MarginRight>" &
                         "<MarginBottom>0.5in</MarginBottom>" &
                         "</DeviceInfo>"

            Dim byteViewer As Byte() = rpt.LocalReport.Render(FileType, deviceinfo, mimeType, encoding, extension, streamids, warnings)
          

                'Dim newFile As New FileStream(selectedFile, FileMode.Create)
                'newFile.Write(byteViewer, 0, byteViewer.Length)
                'newFile.Close()

                Response.Buffer = True
                Response.Clear()
                Response.ContentType = mimeType

                'Response.AddHeader("content-disposition", "attachment; filename=" & hdnCustomerId.Value.ToString() & " " & reportName & " " & FinIQApp_Date.FinIQDateTime(DateTime.Now()) & ".pdf")
               
                Response.AddHeader("content-disposition", "attachment; filename=" & hdnCustomerId.Value.ToString() & " " & reportName & ".pdf")
                
                'Response.Charset = ""
                Response.ContentEncoding = System.Text.Encoding.UTF8
                Response.BinaryWrite(System.Text.Encoding.UTF8.GetPreamble())
                'Dim Text As String = System.Text.Encoding.UTF8.GetString(byteViewer)

                'Response.Write(Text)
                'Response.End()

                Response.BinaryWrite(byteViewer)
                Response.Flush()          

         
        Catch ex As Exception           
            LogTheException("Exception:" & ex.Message.ToString & ex.StackTrace().ToString(), ex,sSelfPath, "CreateReport")
        End Try
    End Sub
Private Sub CreateReport(ByVal FileType作为字符串,ByVal selectedFile作为字符串,ByVal reportName作为字符串)
将警告变暗为警告()=无
将StreamID设置为字符串()=无
Dim mimeType作为字符串=无
Dim编码为字符串=无
作为字符串的Dim扩展名=无
Dim deviceinfo作为字符串=无
Dim viewer作为新的Microsoft.Reporting.WebForms.ReportViewer()
尝试
deviceinfo=“”&
文件类型(&F)&
“13.15英寸”&
“9英寸”&
“0.5英寸”&
“0.1英寸”&
“0.1英寸”&
“0.5英寸”&
""
Dim byteViewer As Byte()=rpt.LocalReport.Render(文件类型、设备信息、mimeType、编码、扩展、流ID、警告)
'将新文件设置为新文件流(selectedFile,FileMode.Create)
'newFile.Write(字节查看器,0,字节查看器.Length)
'newFile.Close()
Response.Buffer=True
答复:Clear()
Response.ContentType=mimeType
'Response.AddHeader(“内容处置”、“附件;文件名=“&hdnCustomerId.Value.ToString()&”“&reportName&”“&FinIQApp_Date.FinIQDateTime(DateTime.Now())&.pdf”)
Response.AddHeader(“内容处置”、“附件;文件名=“&hdnCustomerId.Value.ToString()&”&reportName&“.pdf”)
'Response.Charset=“”
Response.ContentEncoding=System.Text.Encoding.UTF8
Response.BinaryWrite(System.Text.Encoding.UTF8.getPremission())
'Dim Text As String=System.Text.Encoding.UTF8.GetString(字节查看器)
'响应。写入(文本)
'Response.End()
Response.BinaryWrite(字节查看器)
Response.Flush()
特例
LogTheException(“异常:&ex.Message.ToString&ex.StackTrace().ToString(),ex,sSelfPath,“CreateReport”)
结束尝试
端接头
我已经通过了这个和其他许多链接。我认为问题可能出在
Response.BinaryWrite(byteViewer)
中,因为它可能无法从
rpt.LocalReport.Render获取正确的二进制数据


请帮忙解决。谢谢

如果用于显示“泰语数据”的字体符合嵌入PDF的条件?请参阅:。用于显示“泰语数据”的字体是否符合嵌入PDF的条件?请参阅:。