MobileFirst: адаптер вернул данные, содержащие специальные символы

Один из моих адаптеров возвращает некоторые данные, содержащие специальные символы (например, кавычки, маркеры, вопросительные знаки и т. д.)

введите здесь описание изображения

onSuccess вызова адаптера я сохраняю данные в переменной, как показано ниже.

try{

   var data = JSON.stringify(response.invocationResult) ;
   var  _meetingDetailsArray = JSON.parse(data).MXEMEETINGSet.EMEETING ;

}catch(Exception) {
    logger.error( Exception );
}

После этого я выбираю необходимые поля/значения и сохраняю их в другом объекте js, как показано ниже.

    var _summary = ( _meetingDetailsArray.EMEETINGITEM.TCMEETING.VLSUMMARY || "" )  + ( _meetingDetailsArray.EMEETINGITEM.TCMEETING.VLSUMMARY_LONGDESCRIPTION || "" );

//below did not work even
    //_summary = _summary.replace(/\“/g,"&#8220;").replace(/\”/g,"&#8221;").replace(/•/g,"<br>&#8226;");

UserProfile.getUserProfileDetails().userMeetingFullDetails.MeetingItems.STANDARD.Summary.push( _summary  );

При просмотре результатов на devices (iOS, Android) отображаются странные символы.

введите здесь описание изображения

Я использую JQuery Mobile 2.1.3 вместе с Bootstrap 3.3.2, и все страницы загружаются динамически. Основной index.html уже содержит chartset, но пользы все равно нет.

  <meta charset="utf-8"/>

Однако в настольном браузере, например в хроме, все отображается нормально.

Обновить

Я применил iFix v6.3.0.0 InterimFix 201505212300, но результат тот же.

После обновления адаптер возвращает спецсимволы как есть, а раньше они были конвертированы в формат Unicode.

введите здесь описание изображения

Окружающая среда:

  • Eclipse – Luna Service Release 2 (4.4.2)
  • MobileFirst Studio — 6.3.0.00-20150521-2300
  • MobileFirst 6.3 (номер сборки: IMF 00-20150521-2300)
  • IBM WAS Liberty Profile 8.5.5.5 (базовая версия)

введите здесь описание изображения

Обновление 2

Если я запускаю общее приложение через студию разработки Eclipse в настольном Chrome (latest Version 43.0.2357.81 m) и получаю доступ к серверным данным через адаптеры через VPN, то это shows correct data with correct special characters like quotation marks (") or bullets etc.

Но если я получаю доступ к тому же общему приложению, которое развернуто на другом сервере (указанные выше спецификации), в том же браузере Chrome для настольных ПК, то it does not handle special characters and shows strange characters. как показано выше.

Я проверил HTTP-запрос/ответ, и оба одинаковы.

Ответ местного развития:

GET /myProject/apps/services/preview/eMeeting/common/1.0/default/index.html HTTP/1.1
Host: 10.151.59.2:10080
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: NID=67=BUovympli30FPUZ9xJ0N8heI22xH4wL8uuy3YPL3n7EmTtSpQ7nQ_VJS0zgGnWbXVmrHAfU1CIER3HhPvGDfkBODxOoKQsXpuCE6punpkrw-WhRZmg7duiZntwqzgjHh; PREF=ID=55ee18705b919343:U=3649ea9bd9b0a9cc:FF=0:TM=1432904549:LM=1432904571:S=7VeFNsfwhAARESRp
DNT: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
X-Client-Data: CIa2yQEIpLbJAQiptskBCMS2yQEI6YjKAQj9lcoB

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, must-revalidate
Content-Length: 3833
Content-Type: text/html
Date: Fri, 29 May 2015 13:41:45 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
P3P: policyref="/w3c/p3p.xml", CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
Pragma: no-cache
X-Powered-By: Servlet/3.0

Ответ от Сервера, работающего на другой машине:

GET /myProject/apps/services/preview/eMeeting/common/1.0/default/index.html HTTP/1.1
Host: 10.150.20.51:9080
Accept-Encoding: gzip, deflate, sdch
Accept-Language: en-US,en;q=0.8
Cookie: NID=67=BUovympli30FPUZ9xJ0N8heI22xH4wL8uuy3YPL3n7EmTtSpQ7nQ_VJS0zgGnWbXVmrHAfU1CIER3HhPvGDfkBODxOoKQsXpuCE6punpkrw-WhRZmg7duiZntwqzgjHh; PREF=ID=55ee18705b919343:U=3649ea9bd9b0a9cc:FF=0:TM=1432904549:LM=1432904571:S=7VeFNsfwhAARESRp
DNT: 1
User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36
X-Client-Data: CIa2yQEIpLbJAQiptskBCMS2yQEI6YjKAQj9lcoB

HTTP/1.1 200 OK
Cache-Control: no-cache, no-store, must-revalidate
Content-Length: 3833
Content-Type: text/html
Date: Fri, 29 May 2015 13:43:11 GMT
Expires: Thu, 01 Jan 1970 00:00:00 GMT
P3P: policyref="/w3c/p3p.xml", CP="CAO DSP COR CURa ADMa DEVa OUR IND PHY ONL UNI COM NAV INT DEM PRE"
Pragma: no-cache
X-Powered-By: Servlet/3.0

person AAhad    schedule 21.05.2015    source источник
comment
Вы постоянно забываете указать версию своего МФУ... Попробуйте воссоздать это с помощью простого приложения, а не вашего, посмотрите, произойдет ли это (с ответом от сервера). Если это все еще происходит, попробуйте обновить версию студии, так как недавно было исправление для специальных символов в адаптерах.   -  person Idan Adar    schedule 21.05.2015
comment
Ок, конечно. спасибо   -  person AAhad    schedule 21.05.2015
comment
Общее замечание: вам не следует использовать МФУ 6.3 с Liberty 8.5.5.0 — у вас может работать, но не поддерживается. Обновите как минимум до 8.5.5.3   -  person Idan Adar    schedule 21.05.2015
comment
О, спасибо за это, я пропустил эту информацию.   -  person AAhad    schedule 21.05.2015
comment
Я обновил Eclipse Studio до последней версии MFP v7.0.0.00-20150430-1556, будет ли она работать на сервере MFP v6.3? Я не уверен..... Или мне нужно обновить MFP-серверы до последней версии.   -  person AAhad    schedule 22.05.2015
comment
Должно работать, но лучше синхронизироваться с сервером и клиентом.   -  person Idan Adar    schedule 22.05.2015
comment
Студия выдает ошибку, например, не может перейти на v7 с 6. Сейчас я возвращаюсь к 6.3, потому что на трех клиентских машинах мне нужно обновить серверы, и это займет время. Не могли бы вы сказать мне, какое внутреннее исправление 6.3 я применяю для проблемы с адаптером: здесь я вижу только zip-файлы v6.3 или v7: public.dhe.ibm.com/ibmdl/export/pub/software/products/en/   -  person AAhad    schedule 22.05.2015
comment
Что ты имеешь в виду. Перейдите на сайт IBM Fix Central и загрузите последнюю версию 6.3.   -  person Idan Adar    schedule 22.05.2015
comment
Хорошо, позвольте мне проверить это.   -  person AAhad    schedule 22.05.2015


Ответы (2)


У меня была аналогичная проблема, и проблема заключалась в конфигурации профиля Liberty на моем сервере Windows 2012. Данные, возвращенные адаптером SQL, были представлены в телефоне как тарабарщина (неправильные символы). Данные не были родным английским, конечно.

Я предполагаю, что ваш рабочий сервер действительно имеет профиль Liberty v8.5+. Попробуйте добавить следующие строки в файл jvm.options, который находится в той же папке/месте, где находится server.xml?

введите здесь описание изображения

Помните, что все строки начинаются с -D без пробелов до и после:

-Duser.language=en
-Duser.country=US
-Dfile.encoding=UTF-8

введите здесь описание изображения

сохраните файл и перезапустите сервер профилей Liberty.

Один из них помог мне, я думаю, это языковой, хотя мои данные SQL не на английском языке.

Я подозреваю, что это комбинация кодировки БД (MySQL 5.6 в Windows) и кодировки профиля Liberty по умолчанию в Windows.

person taitelman    schedule 07.06.2015
comment
хорошо, что это сработало и для вас. ААхад, ты нашел, какой из трех флагов сработал? - person taitelman; 08.06.2015

Недавний выпуск iFix для MFPF 6.3 содержал следующее конкретное исправление: ПАРАМЕТРЫ UNICODE PI39922 НЕПРАВИЛЬНО КОДИРОВАНЫ ПРИ ПЕРЕДАЧЕ В АДАПТЕР MOBILEFIRST.

До исправления ответы адаптера могли содержать символы, подобные тем, что показаны на изображении в вопросе.

Итак, моя первая мысль заключается в том, что вам нужно загрузить последнюю доступную версию iFix из IBM Fix Central Studio и снова протестировать.

person Idan Adar    schedule 22.05.2015
comment
Спасибо, я загружаю его и обновлю соответственно. - person AAhad; 22.05.2015
comment
Я нашел два iFix на портале iFix Central и применил один из них — последнее исправление, доступное на портале. - person AAhad; 23.05.2015
comment
Можете ли вы увидеть обновленный вопрос и предложить? - person AAhad; 01.06.2015