2013-03-15 4 views
1

Мне нужно потратить испанский текст в ответ json. Я пробовал все возможные способы, но сообщение все еще показывает странные символы в пользовательском интерфейсе. Сообщение, которое я хочу показать это,Кодирование специальных символов в ответе JSON

Número de Seguro Social 

Но он показывает, как,

N�mero de Seguro Social 

На стороне Java,

//response.setContentType("application/json"); 
//response.setCharacterEncoding("UTF-8"); 
response.setContentType("application/json;charset=utf-8"); 
OutputStream out = null; 
out = response.getOutputStream(); 
out.write(jsonResponse.toString().getBytes()); 
out.close(); 

добавил мета-тег в головной секции.

<meta http-equiv="content-type" content="text/html;charset=utf-8"> 

Я также установить тип содержимого в Ajax вызова

$.ajax({ 
     async: false, 
     cache: false, 
     type: get, 
     contentType: "application/json; charset=utf-8", 
     url: //url, 
     data: //data, 
     dataType: //dataType, 
     success: //callbackfn, 
     error: //errorfn 
    }); 

Ничто, кажется, работает. Есть ли что-то еще, что я могу сделать, чтобы заставить специальные персонажи работать так, как я предполагал?

ответ

2

я бы проверить, где происходит ошибка первых, отправив строку:

"N\u00famero de Seguro Social" 

в браузер, который показывает строку UTF, просто чтобы убедиться, что он способен понять и отображать строку UTF вы пытаетесь отобразить.

Но актуальная проблема, вероятно, в:

out.write(jsonResponse.toString().getBytes()); 

Как GetBytes получит байт для кодировки по умолчанию для системы, которая не может быть UTF-8. Вы можете проверить это, позвонив по телефону Charset.defaultCharset();

Я предполагаю, что jsonResponse - это ваш собственный класс для хранения данных ответа и последующего преобразования его в JSON в конце. Я бы рекомендовал использовать библиотеку от http://www.json.org/, как Google JSON library, для выполнения преобразования JSON, так как есть много маленьких ошибок, подобных этой, которые решают проблемы, если вы используете достойную библиотеку для кодирования/декодирования.

+0

благодаря @Danack ... прохождение кодовую в GetBytes() сделал трюк .. 'jsonResponse.toString(). GetBytes (Charset.forName ("UTF-8")' – RKodakandla

+0

@rrkwells вы на самом деле не хотят кодировать JSON вручную на Java. – Danack

0
$.ajax({ 
type: "Get", 
url: your url, 
data: { inputParam : JSON.stringify(inputParam)}, 
    dataType: "json", 
    success: //callbackfn, 
    error: //error 
}); 
Смежные вопросы