- 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;
- }
- }
- });
- }
- }
Kopírovať kód Vyššie uvedený kód sa dá bežne odovzdať v čínštine vo FF/Chrome, ale v IE je problém a výstup informácií na pozadí je skreslený.
Pokus o problém:
1. Set contentType: "text/plain; charset=utf-8", problém pretrváva
2. Znovu som skontroloval stránku JSP, kde sa nachádza kód ajaxu, všetky používajú UTF-8, ale problém pretrváva
3. V Java kóde na pozadí je vynútená konverzia kódovania UTF-8, GBK a GB2312 a problém pretrváva
Po analýze sa zistilo, že to môže súvisieť s prenosom obsahu v prehliadači alebo JQuery, ale momentálne to nie je možné presne určiť.
Riešenie:
Predchádzajúci odsek: encodeURI($(dom).val(), "UTF-8"); encode with encodeURI
Backendový Java kód:
URLDecoder.decode(inputStr, "UTF-8"): Backendový kód dekóduje reťazec odovzdaný v prednom segmente.
Súhrn:
Nakoniec je možné zobraziť informácie o reťazcoch odoslané požiadavkou Ajax Post normálne a čínština normálne.
|