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

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

2013-01-11 
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)

热点排行