3

中国語のテキストを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)
4

1 に答える 1

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
于 2013-11-03T19:20:31.867 に答える