jquery - 移动第一 : adapter returned data containing special characters

标签 jquery twitter-bootstrap webview ibm-mobilefirst mobilefirst-adapters

我的一个适配器返回一些包含特殊字符(如引号、项目符号或问号等)的数据

enter image description here

适配器调用的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  );

设备(iOS、Android)上查看结果时,它显示奇怪的字符。

enter image description here

我正在使用 JQuery Mobile 2.1.3 以及 Bootstrap 3.3.2,并且所有页面都是动态加载的。主 index.html 已经包含 chartset 但仍然没有任何好处。

  <meta charset="utf-8"/>

但是,在 Chrome 等桌面浏览器上,它显示得很好。

更新

我已经应用了iFix v6.3.0.0 InterimFix 201505212300,但结果仍然相同

更新后,适配器按原样发回特殊字符,而之前它们已转换为 Unicode 格式。

enter image description here

环境:

  • Eclipse -Luna 服务版本 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(基础版本)

enter image description here

更新2

如果我通过桌面Chrome上的Eclipse开发工作室(最新版本43.0.2357.81 m)运行通用应用程序,并通过VPN通过适配器访问后端数据,那么它使用正确的特殊字符(如引号 (") 或项目符号等)显示正确的数据。

但是,如果我在相同 Chrome 桌面浏览器中访问部署在另一台服务器计算机(上述规范)上的相同通用应用,则它不会处理特殊字符并显示奇怪的字符。如上所示。

我检查了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

最佳答案

我遇到了类似的问题,问题出在我的 Windows 2012 服务器上的 Liberty 配置文件配置。 SQL 适配器返回的数据在手机中显示为乱码(错误字符)。当然,这些数据不是母语英语。

我假设您的生产服务器确实是Liberty profile v8.5+。尝试在 jvm.options 文件中添加以下行,该文件位于 server.xml 所在的同一文件夹/位置?

enter image description here

记住所有行都以 -D 开头,前后没有空格:

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

enter image description here

保存文件并重新启动 Liberty 配置文件服务器。

其中一个为我解决了这个问题,我猜这是语言之一,尽管我的 SQL 数据不是英文的。

我怀疑数据库编码(Windows 上的 MySQL 5.6)和 Windows 上的 Liberty 配置文件默认编码的组合。

关于jquery - 移动第一 : adapter returned data containing special characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30381601/

相关文章:

html - 对齐 flexbox 底部的三个 div

android - 如何将 pdf 文档显示到 Webview 中?

javascript - 如何防止用户更改 HTML 或 JavaScript 中的值

jquery - 根据容器子节点的数量计算 <article> 的高度()

jquery - tr 崩溃时数据表不工作

javascript - 解除绑定(bind)滚动功能

Facebook 分享: How to update the OG tags when loading a page using AJAX

javascript - jQuery 自动完成功能根据我输入的单词从数据库中获取项目,但结果显示为列表的水平线

带有 “Unknown chromium error: -324” 的 Android 4.0 ICS Webview

java - 如何让WebView检测到服务器连接失败