В моем приложении Blackberry я загружаю JSON, используя следующий метод.
private static Object loadJson(String uriStr){
Object _json = null;
Message response = null;
BlockingSenderDestination bsd = null;
try
{
bsd = (BlockingSenderDestination)
DestinationFactory.getSenderDestination
("CommAPISample", URI.create(uriStr));
if(bsd == null)
{
bsd =
DestinationFactory.createBlockingSenderDestination
(new Context("CommAPISample"),
URI.create(uriStr), new JSONMessageProcessor()
);
}
response = bsd.sendReceive();
_json = response.getObjectPayload();
}
catch(Exception e)
{
System.out.println(e.toString());
}
finally
{
if(bsd != null)
{
bsd.release();
}
}
return _json;
}
Это работает нормально. Но проблема в том, что когда я получаю JSON, арабские символы отображаются как нежелательные
(ا٠„Ø ± ئيس ال ت٠† Ù). Я отправил этот вопрос в форму поддержки Blackberry
Арабские шоу повреждены в выводе JSON
Согласно обсуждению, я кодирую арабский символ в формат \ uxxxx (в моем приложении на стороне сервера), и он работал. Но теперь я должен использовать JSON от кого-то другого, где я не могу изменить код на стороне сервера.
Они используют asp.net C #, так как они отправляют данные следующим образом.
JsonResult result = new JsonResult();
result.ContentEncoding = System.Text.Encoding.UTF8;
result.JsonRequestBehavior = JsonRequestBehavior.AllowGet;
result.Data = “Data Object (Contains Arabic) comes here”
return result;
Так что мой вопрос: если сервер предоставляет данные вышеуказанным способом, метод BlockingSenderDestination.sendReceive может получить данные utf-8? Или он ожидает только \ uxxxx закодированных данных для non-ascii. Или я должен сделать что-то еще (например, отправить заголовок на сервер), чтобы я мог напрямую использовать данные utf-8.
В режиме отладки я проверяю значение «response». Это уже показывает ненужные символы.
Кроме JSON, я могу работать с арабским языком везде.
Вчера я опубликовал этот выпуск в форме Blackberry . Но до сих пор нет ответа.
Я новичок в ежевике и Java. Прошу прощения, если это глупый вопрос.
Заранее спасибо.