- var regid = $('#oregion').combobox('getValue');
- //var sname = $('#sname').val();
- var sname = encodeURI($('#sname').val(),"UTF-8");
- if(regid!=""&®id!='undefined'){
- $.ajax({
- async: true,
- type : "POST",
- dataType : "json",
- url : "<%=request.getContextPath() %>/secretary/isHasUser.do?regid="+regid+"&sname="+sname,
- success : function(data) {
- if(data.mes!=""&&data.mes!=null){
- $.messager.alert('Warning',data.mes);
- return false;
- }
- }
- });
- }
- }
Копія коду Вищезазначений код зазвичай можна передавати китайською у FF/Chrome, але в IE виникає проблема, і інформація у фоновому режимі спотворена.
Спроба задачі:
1. Set contentType: "текст/звичайний; charset=utf-8", проблема залишається
2. Я переперевірив сторінку JSP, де розташований ajax-код, усі вони використовують UTF-8, але проблема залишилася
3. У фоновому коді Java конвертація кодування UTF-8, GBK і GB2312 є примусовою, і проблема залишається
Після аналізу встановлено, що це може бути пов'язано з передачею контенту в браузері або JQuery, але наразі це неможливо точно визначити.
Рішення:
Попередній абзац: encodeURI($(dom).val(), "UTF-8"); кодування за допомогою encodeURI
Бекенд-код Java:
URLDecoder.decode(inputStr, "UTF-8"): Код бекенду декодує рядок, переданий у фронт-сегменті.
Зведення:
Нарешті, інформація про рядки, передана запитом Ajax Post, може відображатися нормально, а китайська — звичайно.
|