[ maxer @ 10.05.2012. 17:00 ] @
Pravim neku Spring Web aplikaciju i pokusavam da posaljem JSON koji sadrzi neka polja koja predstavljaju valute (£ ili €). Na serverskoj strani je sve ok u JSON-u koji se salje na klijenta, ali kada to primim na klijentskoj prikazuje mi karaktere ako sto je �. Kada proverim response u FireBug-u isto se vidi. Koristim UTF-8 encoding, ali sam mozda nesto zaboravio da uradim.

Sve sam ovo postavio i nista ne pomaze:

JSP strana:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />

Javasctipt koji koristim za renderovanje delova strane koriscenjem JSON-a
<script type="text/javascript" charset="utf-8" src="blabla.js" ></script>

server.xml tomcat servera
<Connector URIEncoding="UTF-8" compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css" compression="on" compressionMinSize="2048" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>

HttpServletResponse:
response.setCharacterEncoding("UTF-8");

Deo JSON-a logovan na serverskoj strani pre slanja na klijenta
","pr":"8.49","cu":"£"},{

Odgovor servera koji se vidi u Firebug-u na klijentskoj strani
","pr":"8.49","cu":"�"},{"

Zna li neko kako da resim ovaj problem?


[ Nikola Poša @ 10.05.2012. 19:17 ] @
Na koji način dovlačiš te podatke na klijentu? Ako je u pitanju neki jQuery, možda si zaboravio da postaviš onaj contentType parametar pri tom nekom $.ajax() pozivu, npr.:
Code:
$.ajax({
    type: 'get',
    url: 'nekaStranica.jsp',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    success: function(data) {
        //neki kôd
    }
});

[ maxer @ 10.05.2012. 21:17 ] @
Koristim funkciju $.post

Code:

var url = ... ;
$.post(url, function(json){
    var c = json.cu;
    ....
}, "json");
[ Burgos @ 10.05.2012. 22:06 ] @
Probaj:

Code:
$.ajaxSetup({ 
        scriptCharset: "utf-8" , 
        contentType: "application/json; charset=utf-8"
});


pre poziva $.post funkcije.
[ peca89bg @ 10.05.2012. 22:15 ] @
probaj da saljes kod znaka
[ maxer @ 11.05.2012. 08:32 ] @
Ne pomaze. Na kraju cu verovatno slati kodove znaka ili eskejpovati znake na serverskoj strani.
[ Nikola Poša @ 12.05.2012. 09:34 ] @
Citat:
maxer: Koristim funkciju $.post

$.post() je samo skraćeni oblik $.ajax() f-je, i ekvivalent je npr. ovome:
Code:
$.ajax({
    type: 'post',
    url: url,
    data: data,
    success: success,
    dataType: dataType
});

Tako da, isti onaj contentType parametar možeš da koristiš i u slučaju $.post() funkcije.
[ maxer @ 12.05.2012. 19:38 ] @
Znam, ali mi nije pomoglo. Eskejpovao sam znakove valuta na serverskoj strani i to sad radi ok. Ali i dalje im problem kada je valuta viseslovna i napisana cirilicom na primer.