В настоящее время я пытаюсь обработать http-запрос из приложения J2me на сервер Websphere 6 , который связывается с другими системами посредством обмена сообщениями MQ.Набор символов очереди - Cp037 , а сообщение, полученное из очереди, - Cp1256 .
Все отлично работает до того момента, когда я пытаюсь отправить ответ на арабском языке.клиенту j2me следующим образом:
String respStr = new String(orginalMsg, "Cp1256");
response.getOutputStream().write(bytes);
Ответ от сервлета задается с помощью:
- Кодировка символов: UTF-8
- Тип содержимого: text / plain; charset = UTF-8
Впоследствии я прочитал ответ в J2me с:
inputStreamReader = new InputStreamReader(connFact.getInputConnection(),"UTF-8");
buffer = new StringBuffer((int) length); // If no length, default to 256 buffer
char[] data = new char[128];
int total = 0x00;
int read = -1;
do
{
read = inputStreamReader.read(data);
if (read > 0x00)
{
total += read;
buffer.append(data, 0x00, read);
}
} while (read != -1 && !cancel);
Я работаюкод в эмуляторе WTK, который я знаю, поддерживает арабские символы UTF-8, так как я могу отображать в форме заштрихованные строки.
Однако когда дело доходит до отображения результата только из ответа?отображаются символы.
Я пытался выполнить преобразование программно, а не позволять Websphere выполнять неявное преобразование, но я получаю тот же результат.
Любые указатели будут высоко оценены.