我一直在尝试将一些中文文本打印到 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)
最佳答案
PrintLine(FileNum, PANEL_DETAILS_COL1)
FileOpen 和 PrintLine 是古老的 VB 子例程,最后一次在 VB6 中使用。它们仅包含在 VB.NET 中以帮助移植旧代码。他们使用 Encoding.Default 对文本进行编码,这将产生 ?世界上大多数机器上都有问号。
您需要升级此代码,改用 StreamWriter 类。默认使用utf-8编码,汉字无问题,不依赖机器配置。
Using sw = new StreamWriter(cmnSaveSave.FileName)
sw.WriteLine(PANEL_DETAILS_COL1)
End Using
关于vb.net - 为什么 '?' 在打印中文文本时显示为输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19756802/