Wince串口如何发送中文?

xiumu5 2006-08-12 09:33:08
我现在想通过一个PDA的蓝牙连接一台打印机,打印PDA发送的数据。
我才接触Wince,一点都搞不明白,后来找了一些代码实现了发送英文,但不能发送中文。
谁有这方面的资料,希望能给我一份。谢谢
我需要VB.NET或c#的。EVC我不懂(而且我有一份完整的Evc代码,就是看不明白,郁闷)谁帮我翻译成VB.net或C#的也行。

分不多,请包涵。我的邮箱:cnwhol@163.com
QQ:6311875
...全文
451 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhouxm0521 2006-08-22
  • 打赏
  • 举报
回复
CString 和char之间转换就可以了
wang8712 2006-08-18
  • 打赏
  • 举报
回复
编码成EncodeBase64就可以了:提供一个具体的方法

public static string EncodeBase64(string code_type,string code)
{
string encode = "";
try
{
byte[] bytes = System.Text.Encoding.GetEncoding(code_type).GetBytes(code);
encode = Convert.ToBase64String(bytes,0,bytes.Length);
}
catch
{
encode = code;
}
return encode;
}

调用:
EncodeBase64("utf-8","内容")
xiumu5 2006-08-16
  • 打赏
  • 举报
回复
我一直在找。找不到啊
bigfoot_cnd 2006-08-16
  • 打赏
  • 举报
回复
那找个把unicode 转换成 GB的函数吧,
cy214 2006-08-16
  • 打赏
  • 举报
回复
注意一下双字节的问题就行了吧 估计是你拆包以后时候错了位 中文在ce下面就是两个字节的编码 注意统一编码 发送和接收方都必须是unicode形式的中文编码
xiumu5 2006-08-16
  • 打赏
  • 举报
回复
使用WriteFile发送的。发送的就是Byte,打印出来是乱码。
xiumu5 2006-08-16
  • 打赏
  • 举报
回复
打印机设备商说发送时需要转换成GB码发送给打印机,不知道该怎么转换了。
xiumu5 2006-08-16
  • 打赏
  • 举报
回复
谢谢各位的回答。
我现在可以发送中文了,但有些字是其他字,呵呵,真是郁闷啊
这是我的代码,大家帮我看看,另外我应该怎么判断是否打开端口了呀,我才接触这方面,一点都搞不懂,资料也找不到。麻烦大家了

Public Sub openPort()
Dim ioPort As Short = 8
inoutfileHandler = CreateFile _
("COM" & ioPort & ":", _
&HC0000000, 0, 0, 3, 0, 0)
pdcb = New dcb
'设置波特率
GetCommState(inoutfileHandler, pdcb)
pdcb.BaudRate.Parse("9600")
SetCommState(inoutfileHandler, pdcb)

stopThread = False
t1 = New Threading.Thread _
(AddressOf receiveLoop)
t1.Start()
Label1.Text = "打开成功!"
End Sub

Public Sub displayReceivedMessage(ByVal str As String)
If str.Length > 0 Then
TextBox1.Text += str
End If
End Sub

Public Function Send(ByVal message As String) As Integer
Dim value As String = message & vbCrLf
Dim retCode As Integer = WriteFile _
(inoutfileHandler, _
stringToByteArray(value), _
value.Length(), _
numReadWrite, _
0)
writefile(
Return retCode
End Function

Public Sub closePort()
stopThread = True '结束线程
CloseHandle(inoutfileHandler)
End Sub

Public Delegate Sub myDelegate(ByVal str As String)

Public Function stringToByteArray(ByVal str As String) As Byte()

Dim gb As Encoding = Encoding.GetEncoding("GBK")

Dim wBytes As Byte() = gb.GetBytes(str)

Return wBytes
End Function
bigfoot_cnd 2006-08-16
  • 打赏
  • 举报
回复
不是有个什么MultiByteToWideChar
西山小月 2006-08-15
  • 打赏
  • 举报
回复
转换成char或者byte发送就可以了。
KevinCEC 2006-08-15
  • 打赏
  • 举报
回复
byte类型,跟发什么都一样啊
robert126 2006-08-15
  • 打赏
  • 举报
回复
mark
sazsa 2006-08-14
  • 打赏
  • 举报
回复
我也是和LS 想的一样

发送字节而已

bigfoot_cnd 2006-08-14
  • 打赏
  • 举报
回复
英文和中文都是编码,数据传输是按字节,和语言没有关系。
色郎中 2006-08-14
  • 打赏
  • 举报
回复
英文和中文都是编码,数据传输是按字节,和语言没有关系。

恩 是这样的
不过还真没发过中文 呵呵

19,497

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧