UDPSend 要发送中文该如何处理?
接收端要求输入的是UTF-8编码的中文.我用StringToBinary 传递过去的中文老缺最后几个字
请教大虾了 为什么不先搜索一下呢?
http://www.autoitx.com/forum.php?mod=viewthread&tid=2028&highlight=%D6%D0%CE%C4 #AutoIt3Wrapper_UseAnsi=y 就好了 使用 Ansi 编码 晕啊,要用什么版本才可以? 字符串》二进制》发送》接收》二进制转字符串 测试过了,还是不行
===================
客户端
UDPStartup()
; Bind to a SOCKET
;==============================================
$socket = UDPBind(@IPAddress1, 65532)
If @error <> 0 Then Exit
While 1
$data = UDPRecv($socket, 65532)
If $data <> "" Then
MsgBox(0, "接受到的信息", BinaryToString($data,4))
EndIf
sleep(100)
WEnd
Func OnAutoItExit()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc
==================================
服务端
UDPStartup()
$test = StringToBinary("这个是虾米呀为什么不能显示完整的中文呢",4)
; Open a "SOCKET"
;==============================================
$socket = UDPOpen(@IPAddress1, 65532)
If @error <> 0 Then Exit
While 1
Sleep(2000)
$status = UDPSend($socket, $test)
If $status = 0 then
MsgBox(0, "错误", "错误发送消息代码为: " & @error)
Exit
EndIf
WEnd
Func OnAutoItExit()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc
S:
;;这是一个 UDP 服务器
;;Start this first
; Start The UDP Services
;==============================================
UDPStartup()
; Bind to a SOCKET
;==============================================
$socket = UDPBind("127.0.0.1", 65532)
If @error <> 0 Then Exit
While 1
$data = UDPRecv($socket, 500,1)
If $data <> "" Then
MsgBox(0, "UDP 数据", BinaryToString($data,4), 1)
EndIf
sleep(100)
WEnd
Func OnAutoItExit()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc
C:
;;This is the UDP Client
;;Start the server first
; Start The UDP Services
;==============================================
UDPStartup()
; Open a "SOCKET"
;==============================================
$socket = UDPOpen("127.0.0.1", 65532)
If @error <> 0 Then Exit
$n=0
While 1
Sleep(2000)
$n = $n + 1
$status = UDPSend($socket, StringToBinary("测试使用中文发送消息 #" & $n & '中文,english,1234567',4))
If $status = 0 then
MsgBox(0, "错误", "当发送 UDP 消息时发生错误: " & @error)
Exit
EndIf
WEnd
Func OnAutoItExit()
UDPCloseSocket($socket)
UDPShutdown()
EndFunc 不是叫你加这句么...脚本里没看到你加啊
#AutoIt3Wrapper_UseAnsi=y 我的代码运行正常
3.3.0.0.1 UNICODE 解决了,不胜感激。
btw:我实在太菜了 lol 原帖由 sxd 于 2009-1-20 11:23 发表 http://www.autoitx.com/images/common/back.gif
不是叫你加这句么...脚本里没看到你加啊
#AutoIt3Wrapper_UseAnsi=y
加了也无效,最新版。但从官网下载过N过旧版试过#AutoIt3Wrapper_UseAnsi=y无效,只能转换。 原帖由 ceoguang 于 2009-1-20 11:37 发表 http://www.autoitx.com/images/common/back.gif
加了也无效,最新版。但从官网下载过N过旧版试过#AutoIt3Wrapper_UseAnsi=y无效,只能转换。
这是可以的,需要先编译。编译的就正常。直接运行现在调用的是UNICODE的。 原来如此!!! 学无止境。我是来学习的、 UDPSend 要发送中文该如何处理?
页:
[1]