Zeichenkodierung Antworten mit RESTEasy / jax-rs
Ich bin mit RESTeasy für jax-rs auf meinem server. Mein client sendet einen string mit den Zeichen ' ✓ ' an und der server speichern kann, dass der Charakter (ich kann bestätigen, dass es korrekt gespeichert auf dem server). Der server kann aber nicht scheinen, um die Rückkehr der '✓' in eine Antwort - stattdessen ein"? " gesendet wird.
Ich gehe davon aus, dass ich die Angabe einer return-Codierung oder sowas, aber ich weiß nicht, wo dies zu tun, oder, wie zu überprüfen, um zu sehen, was die aktuelle Codierung ist!
Wie kann ich die Kodierung angeben, die auf meinem server so dass ich zurückkehren kann, eine " ✓ " in eine Antwort?
Bearbeiten Sie zum hinzufügen von code
Mein server code:
@Path("compiled/{rootReportGroupId}")
@GET
@Produces("text/html; charset=UTF-8")
@NoCache
public String getCompiledReports(@PathParam("rootReportGroupId") Long rootReportGroupId){
return "✓";
}
Einer Beispiel-Anfrage:
GET http://192.168.0.12:8888/rest/reports/compiled/190
Host 192.168.0.12:8888
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:7.0.1) Gecko/20100101 Firefox/7.0.1
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip, deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Connection keep-alive
Content-Type application/json
Die Antwort-Header:
Cache-Control public, no-transform, no-cache
Content-Type text/html;charset="UTF-8"
Content-Length 1
Server Jetty(6.1.x)
Den response-body:
?
- Unterstützt es HTML-entities? Versuchen
✓
. - Ja, es hat keine problem beim senden jedes dieser Zeichen. Ich würde gerne senden Sie den string unverfälscht, obwohl.
- Diese Frage wurde hier beantwortet stackoverflow.com/a/32247391/2989105
- wie wird der jboss-spezifische jboss-web-Konfiguration einem Benutzer helfen, von der jetty?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Etwas ausschweifend und lang, so dass ich es in eine Antwort, aber meistens ist es ein Kommentar.
Aus Neugier, welche Versionen von Java, Rest Einfach, compiler-Einstellungen verwenden Sie?
Ich verwendet Ihren code, den Sie hier gepostet auf MacOS 10.6, RestEasy 2.2.3.GA, Java 1.6.0_29, Tomcat 7.0.22, und es funktioniert einwandfrei (habe ich entfernt param Stück, aber es scheint nicht relevant).
Was ist der code zum Lesen und schreiben auf der server-Seite? Gibt es Probleme der Zeichenkodierung Lesen?
Ich bin auch misstrauisch von Ihren response-Header, insbesondere:
Ich denke, sollte sein:
Gibt es drei Schichten zu konfigurieren:
JSP
HTML
JSP
Gleiche Art von Sache, die in einem Servlet. Siehe JBoss-spezifische Lösung, wie auch komplette server-unabhängige Lösung, die in diese Antwort.
Können Sie verlieren den Charakter von Informationen auf der Datenbank-Ebene. Stellen Sie sicher, dass Ihre Datenbank-Kodierung ist UTF-8 auch, und nicht ASCII.
Für eine vollständige Erörterung dieses Themas, siehe Java-Artikel Zeichen Konvertierungen vom Browser bis zur Datenbank.
Ich denke, das problem ist, dass Ihre Entwicklungsumgebung/Texteditor, speichern Sie die Datei in einer anderen Codierung, also machen Sie den container zurückgeben, die UTF-8-Codierung, aber der text ist es nicht so das enconding, das macht das problem passiert.
Grüße
Luan