2010-11-19 40 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