首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

POS小票打印时,在VB2010经过并口输出打印中文出现乱码

2012-09-27 
POS小票打印时,在VB2010通过并口输出打印中文出现乱码POS小票打印时,通过并口输出打印中文出现乱码:VB.net

POS小票打印时,在VB2010通过并口输出打印中文出现乱码
POS小票打印时,通过并口输出打印中文出现乱码:

VB.net 2010中:
  Dim theLPT As New LPT
  theLPT.Open()

  theLPT.Write(Chr(28) + Chr(38)) 'FS &进入汉字模式
  theLPT.Write(Chr(28) + Chr(87) + Chr(1))

  theLPT.Write(" " & " 中文测试")

这时打印出现乱码,全为" ??????"


而,在VB6.0中,类似的方式调用,却能正常打印,代码如下: 
  Open "LPT1:" For Output As #1
  Print #1, Chr(28) + Chr(38) 'FS &进入汉字模式
  Print #1, Chr(28) + Chr(87) + Chr(1) 'FS W n=1
  Print #1, " "; "中文测试"


  请高手指点。


[解决办法]
Public Sub Write(ByVal sData As String)
Dim bytes() As Byte = System.Text.Encoding.ASCII.GetBytes(sData)
For Each b As Byte In bytes
Write(b)
Next
End Sub


用的ASCII,中文肯定乱码,改成
System.Text.Encoding.UTF8.GetBytes(sData)

System.Text.Encoding.GetEncoding("GB2312").GetBytes(sData)

热点排行