我可以使用电话号码访问数据库,我想发送阿拉伯短信到电话号码,我使用此代码发送:
Dim result As String
Dim myUrl As String
Dim winHttpReq As Object
Set winHttpReq = CreateObject("WinHttp.WinHttpRequest.5.1")
myUrl = "http://www.nsms.ps/api.php?comm=sendsms&user=user&pass=pass&to=number&message=مرحبا&sender=TrueMark"
winHttpReq.Open "GET", myUrl, False
winHttpReq.Send
result = winHttpReq.responseText
我的代码可以正常工作,并且我的手机收到短信,但是我没有收到阿拉伯语单词顺序的短信。我收到这样的消息:ط§ظ„ط³ظ„ط§ظ… ط¹ظ„ظٹظƒظ…
URL通常需要使用UTF-8编码或百分比编码。
这些是相当广泛的主题,但幸运的是,this answer包含一个支持unicode的百分比编码器。使用它对URL中的阿拉伯字符进行百分比编码。如果要在64位访问上使用它,只需针对64位操作进行调整。
[如果要采用UTF-8方式,则需要用WinHTTP Flat API calls替换COM WinHTTPRequest对象,然后调用WideCharToMultiByte
将字符串从UTF-16转换为UTF-8。不幸的是,这不是一件容易的事。