问题描述
最近用C#写了一个程序,需要用网口类型的热敏打印机打印一段维吾尔文。但打印出来的都是乱码,哪位大侠可以帮上忙?
解决方案
解决方案二:
首先确定热敏打印机是否支持维文,其次你是用什么方式打印的,最好上代码
解决方案三:
privatevoidbutton1_Click(objectsender,EventArgse){Int32port=9100;stringbigFont=((char)27).ToString()+((char)33).ToString()+((char)213).ToString();//放大字体TcpClientclient=newTcpClient();try{client.Connect("192.168.1.230",port);Byte[]data=newbyte[]{0x1B,0x76};NetworkStreamstream=client.GetStream();stream.Write(data,0,data.Length);data=System.Text.Encoding.Default.GetBytes(bigFont);stream.Write(data,0,data.Length);data=System.Text.Encoding.Default.GetBytes("这里有一段维吾尔文/n");stream.Write(data,0,data.Length);data=System.Text.Encoding.Default.GetBytes("--/n");stream.Write(data,0,data.Length);data=System.Text.Encoding.Default.GetBytes("--/n");stream.Write(data,0,data.Length);stream.Close();}catch(Exceptionex){MessageBox.Show(ex.Message);}finally{client.Close();}}
解决方案四:
引用1楼yuankaiwsl的回复:
首先确定热敏打印机是否支持维文,其次你是用什么方式打印的,最好上代码
你看一下这个,说支持阿拉伯语,应该支持维吾尔文,我以前看过者类型打印机打印的维吾尔文。
解决方案五:
这里是维文吗?System.Text.Encoding.Default.GetBytes("--/n");
你试试改成System.Text.Encoding.GetEncoding(708).GetBytes("--/n");//阿拉伯字符(ASMO708)
或者System.Text.Encoding.GetEncoding(720).GetBytes("--/n");//阿拉伯字符(DOS)
试试
解决方案六:
引用4楼yuankaiwsl的回复:
这里是维文吗?System.Text.Encoding.Default.GetBytes("--/n");你试试改成System.Text.Encoding.GetEncoding(708).GetBytes("--/n");//阿拉伯字符(ASMO708)
或者System.Text.Encoding.GetEncoding(720).GetBytes("--/n");//阿拉伯字符(DOS)
试试
还是不行,我现在有两个热敏打印机,一个是USB的,另一个是网口的,USB的是默认打印机,所以打印的时候不需要指定,但有两个USB打印机的话,怎么指定用哪个?
解决方案七:
1、打印出乱码,还是编码问题。2、两个USB打印机同时存在打印机名不会一样吧