2010-11-19 42 views
1

我在myproject中使用web服务。当我调用这个方法时,我写了一个webservice客户端方法, 我得到了具有数据的json对象。然后我在jsp中提取该对象并使用它 来显示。问题是:我需要在这里显示一些阿拉伯字符,我是从json对象获取的 。当我将它发送到浏览器时,它显示的是像字符而不是阿拉伯字符的 صـيدلية ســد مــــأرب不需要的字符,而不是阿拉伯字符

JSON Oject:

"results": [ 
    { 
    "attributes": { 
     "OBJECTID": "35", 
     "FACILITYTYPE": "Pharmacy", 
     "FACILITYSUBTYPE": "24 Hr Pharmacy", 
     "COMMERCIALNAME_E": "SADD MAARAB PHARMACY", 
     "COMMERCIALNAME_A": "صـيدلية ســد مــــأرب", 
     "TELEPHONE": "5832625", 
     "FAX": "5833266", 
     }, 
    "geometryType": "esriGeometryPoint", 
    }, 
    { 
     "attributes": { 
     "OBJECTID": "1", 
     "FACILITYTYPE": "Pharmacy", 
     "FACILITYSUBTYPE": "24 Hr Pharmacy", 
     "COMMERCIALNAME_E": "GAYATHY HOSPITAL PHARMACY", 
     "COMMERCIALNAME_A": "صيدلة مستشفى غياثي", 
     "TELEPHONE": "28741666", 
     "FAX": "28742008", 
     }, 
    "geometryType": "esriGeometryPoint", 
    } 
]} 

在JSP中显示数据:

<% for (Object object : results) { 
    JSONObject jobj = (JSONObject)object; 
    if (jobj != null && jobj.containsKey("attributes")) 
     { 
    JSONObject att= (JSONObject) jobj.get("attributes"); 

    %> 

<tr ><td ><span><%= att.get("COMMERCIALNAME_E") %></span></td> 
<tr ><td ><span><%= att.get("COMMERCIALNAME_A") %></span></td> 
<td ><span><%= att.get("TELEPHONE") %></span></td> 
<td ><span><%= att.get("FAX") %></span></td> 
</tr> 
<%}} %> 

当我运行这个JSP,我得到想要的字符,而不是阿拉伯字符。我哪里错了?

回答

0

这可能与页面的编码有关。你当然需要一个unicode编码(其中包括那些特殊字符),而你可能使用的标准是utf-8(不会)。

0

将它放在JSP的顶部。

<%@ page pageEncoding="UTF-8" %> 

这将指示写和在JSP发送数据为UTF-8的服务器,并且它也将增加一个响应标头指示上述客户端(浏览器)来解释数据以UTF-8。否则,将使用系统的默认值(通常是不包含阿拉伯字符的ISO-8859-1)。

参见这篇文章的背景信息和解决方案为Unicode问题:Unicode - How to get the characters right?

+0

你好感谢你给我answer.But已经写了这个代码,但它不是working.Could你给我其他的解决办法吗? – 2010-11-23 07:27:53