不需要的字符而不是阿拉伯字符

时间:2010-11-19 07:46:55

标签: json jsp unicode character-encoding

我在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时,我收到了不需要的字符而不是阿拉伯字符。我哪里做错了?

2 个答案:

答案 0 :(得分:1)

将它放在JSP的顶部。

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

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

有关Unicode问题的背景信息和解决方案,请参阅本文:Unicode - How to get the characters right?

答案 1 :(得分:0)

这可能与页面的编码有关。您肯定需要unicode编码(包括那些特殊字符),而您可能正在使用标准utf-8(不包含)。