我一直在尝试将一些中文文本打印到excel文件中。 当我把一些通用英文文本打印正确时。但是,当我试着把一些中文文本打印出来的时候“?”在文件中。
请告诉我以下代码中的错误
Public WithEvents cmnSaveSave As System.Windows.Forms.SaveFileDialog
Dim PANEL_DETAILS_COL1 As String = "完成的信息"
Dim FileNum as Integer
cmnSaveSave.Filter = I18N(CStr(63), "Excel Documents(*.Xls)|*.Xls")
Dim myDlgResult As System.Windows.Forms.DialogResult
myDlgResult = cmnSaveSave.ShowDialog() '
cmnSaveSave.FileName = "c:\"
FileOpen(FileNum, cmnSaveSave.FileName, OpenMode.Output)
FileNum = FreeFile()
PrintLine(FileNum, PANEL_DETAILS_COL1)
答案 0 :(得分:4)
PrintLine(FileNum, PANEL_DETAILS_COL1)
FileOpen和PrintLine是最近在VB6中使用的古老的VB子程序。它们仅包含在VB.NET中以帮助移植旧代码。他们使用Encoding.Default来编码文本,这会产生什么?世界上大多数机器上的问号。
您需要升级此代码,而是使用StreamWriter类。它默认使用utf-8编码,这种编码对中文字符没有任何问题,并且不依赖于机器配置。
Using sw = new StreamWriter(cmnSaveSave.FileName)
sw.WriteLine(PANEL_DETAILS_COL1)
End Using