2010-11-19 5 views
1

myproject.I에서 webservice를 사용하고 있습니다.이 메서드를 호출 할 때 웹 서비스 클라이언트 메서드를 작성했습니다. 데이터가있는 json 개체를 얻습니다. 그런 다음 jsp에서 객체를 추출하고 을 사용하여 표시합니다. 문제는 다음과 같습니다. 여기에 일부 아랍어 문자를 표시해야합니다. 나는 을 json 객체에서 가져옵니다. 브라우저로 보내면 아랍어 문자 대신에 صـيدلية ســد مــــأرب이 표시됩니다.아랍어 문자 대신 원치 않는 문자

JSON Oject : JSP에서

"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", 
    } 
]} 

표시 데이터 :

<% 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

이것은 페이지의 인코딩과 관련이있을 수 있습니다. 인코딩 (특수 문자 포함)이 필요하지만 아마도 utf-8 표준을 사용하고있을 것입니다 (그렇지 않은 경우).

0

JSP의 맨 위에 넣으십시오.

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

이 작성하고 UTF-8로 JSP에 데이터를 전송하기 위해 서버를 지시합니다, 또한 UTF-8로 데이터를 해석 할 수있는 클라이언트 (브라우저)를 지시하는 응답 헤더를 추가합니다. 그렇지 않으면 시스템의 기본값이 사용됩니다 (아랍어 문자를 포함하지 않는 ISO-8859-1).

참조 또한 유니 코드 문제에 대한 배경 정보와 솔루션이 문서 : Unicode - How to get the characters right?

+0

안녕 내가 이미이 코드를 작성 answer.But주는 주셔서 감사하지만, 당신이 나에게 다른 솔루션을하시기 바랍니다 제공 working.Could되지 않는 이유는 무엇입니까? –