Нежелательные персонажи вместо арабских - PullRequest
1 голос
/ 19 ноября 2010

Я использую веб-сервис в myproject.I написал клиентский метод веб-сервиса, когда я вызываю этот метод, я получаю объект 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 ]

1 голос
/ 19 ноября 2010

Поместите это поверх вашего JSP.

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

Это даст команду серверу записывать и отправлять данные в JSP как UTF-8, а также добавит заголовок ответа, который инструктирует клиента(браузер), чтобы интерпретировать данные как UTF-8.В противном случае будет использоваться системное значение по умолчанию (часто это ISO-8859-1, которое не содержит арабских символов).

См. Также эту статью для справочной информации и решения проблем Unicode: Unicode - Howчтобы получить правильные символы?

0 голосов
/ 19 ноября 2010

Это может быть связано с кодировкой страницы.Вам наверняка понадобится кодировка unicode (которая включает в себя эти специальные символы), тогда как вы, вероятно, используете стандарт utf-8 (который не использует).

...