为什么?在打印中文文本时显示为输出 [英] why '?' appears as output while Printing chinese text

查看:125
本文介绍了为什么?在打印中文文本时显示为输出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我一直在试图打印一些中文文本到Excel文件中。
当我把一些普通的英文文本打印正确。但是,当我尝试把一些中文文本打印在文件中。/ b>

请让我知道在下面的代码中有什么错误

  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是上次在VB6中使用的古代VB子程序。它们只包含在VB.NET中以帮助移植旧代码。他们使用Encoding.Default来编码文本,这将产生?世界上大多数机器上都有问号。

您需要升级此代码,然后使用StreamWriter类。它默认使用utf-8编码,这种编码对中文字符没有任何影响,并且不依赖于机器配置。

 使用sw = new StreamWriter(cmnSaveSave.FileName)
sw.WriteLine(PANEL_DETAILS_COL1)
结束使用


I have been trying to print some chinese text in to an excel file . When i put some general english text its printing correct . But when i try to put some chinese text it printing '?' in the file .

Please let me know whats wrong in the below code

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 and PrintLine are ancient VB subroutines that were last used in VB6. They are only included in VB.NET to help port old code. They use Encoding.Default to encode text, that's going to produce ? question marks on most machines in the world.

You'll need to upgrade this code, use the StreamWriter class instead. It uses utf-8 encoding by default, an encoding that has no trouble with Chinese characters and doesn't depend on the machine configuration.

Using sw = new StreamWriter(cmnSaveSave.FileName)
    sw.WriteLine(PANEL_DETAILS_COL1)
End Using

这篇关于为什么?在打印中文文本时显示为输出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆