读书人

POS小票打印时在VB2010透过并口输出

发布时间: 2013-01-11 11:57:35 作者: rapoo

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)

读书人网 >VB Dotnet

热点推荐