我在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 :(得分: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
(不包含)。