Я получаю специальные символы (?????) на своем мобильном телефоне, когда я отправляю арабский текст через JAVA Webservice.Ниже показано, как я реализовал.
- Клиентская и тестовая программа Webservice работает на моем компьютере с Windows, и я работаю с Eclipse, чей набор символов ISO-8859-1.
- Inмоя тестовая программа Я кодирую (используя URLEncoder) арабскую строку в ISO-8859-6.
- Хост WebService установлен на сервере Linux.Здесь я конвертирую закодированную строку в байты.Затем я пересылаю этот запрос в службу Java через TCP IP.Эта служба отвечает за отправку SMS.
- В этой службе Java я декодирую с тем же шифрованием, что и выше, и отправляю сообщения поставщику SMS.
Реализация
/**
* 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
}
Примечание. Хост веб-службы и клиент Java размещаются на одном физическом сервере.
Клиент Java:
sendSMS(p_message){
message =URLDecoder.decode(p_message,"ISO-8859-6");//send message to mobile provider.
sendmessagetoProvider(message);
}
, когда язапустил TCPViewer на моем компьютере, я вижу специальные символы.Любая идея, как решить эту проблему.