当我通过JAVA Webservice发送阿拉伯语文本时,我的手机上会收到特殊字符(?????)。以下是我实施的方式。
/**
* Arabic Implementation is as below
**/
String message= arabictext;
message=URLEncoder.encode(message,"ISO-8859-6");
sendMessage(message,uername,password); ///webservice call
sendMessage(p_message,username,password){
byte[] request = message.getbytes();//tried by passing character set
Tcserver.post(request);//posting the request to java client
}
注意:Webservice Host和Java客户端都托管在同一台物理服务器上。
sendSMS(p_message){
message =URLDecoder.decode(p_message,"ISO-8859-6");//send message to mobile provider.
sendmessagetoProvider(message);
}
当我在PC上运行TCPViewer时,我看到了特殊字符。知道如何解决这个问题。
答案 0 :(得分:0)
我认为问题出现在sendmessagetoProvider
以及URLEncoder
和URLDecoder
的使用范围内。
当您发送消息时,您可能需要对其进行编码。您正在客户端呼叫decode
。 BTW恕我直言,这就是你收到“特殊字符”的原因。
因此,首先来看看您的API规范。方法sendmessagetoProvider
期待什么?可能您不必将字符串编码为URL?可能它只支持Unicode,或者你在调用客户端时必须提供编码?然后相应地修改代码。