2016-03-25 11 views
1

Ich habe eine Spring Boot (Version 1.3) Web-Anwendung, alle in UTF-8, und ein PostgreSQL-Server mit Server-Kodierung UTF-8 und Client-Kodierung WIN1252.Falsche Codierung zwischen Spring und PostgreSQL

Das Problem ist, dass, wenn ich in der DB etwas mit Sonderzeichen manuell speichern, die Codierung richtig ist, aber von JDBC wird die Zeichenfolge falsch gespeichert.

Auf die gleiche Weise, wenn ich eine Zeichenfolge mit Sonderzeichen gespeichert habe und ich eine SELECT-Abfrage manuell lesen, ist die Codierung richtig, aber von JDBC wird die Zeichenfolge falsch gelesen.

Die Datenbank zu löschen und neu zu erstellen ist im Moment keine Wahl, daher habe ich viele Dinge mit schlechtem Ergebnis versucht. Gibt es eine Lösung für mich?

PD: Ich habe alle diese Eigenschaften in meiner Datei application.properties setzen:

spring.datasource.sql-script-encoding = UTF-8 
spring.http.encoding.charset = UTF-8 
spring.http.encoding.enabled = true 
spring.http.encoding.force = true 
spring.mandatory-file-encoding = UTF-8 
server.tomcat.uri-encoding = UTF-8 
spring.messages.encoding = UTF-8 
+0

Ich denke, dass Ihre Eigenschaft falsch benannt ist. Versuchen Sie 'spring.datasource.sqlScriptEncoding = UTF-8' anstelle von' spring.datasource.sql-script-encoding = UTF-8' – dambros

+0

Ich benutze _Spring Boot 1.3_, ich habe es nicht entschuldigt. Die Eigenschaft wird wie gesagt in _Spring Boot 1.2_ aufgerufen. [Anwendungseigenschaften 1.3.3] (http://docs.spring.io/autorepo/docs/spring-boot/1.3.3.RELEASE/reference/html/common-application-properties.html) – malkomich

+1

Sie haben Recht, ich 'Es tut mir leid. – dambros

Antwort

0

Wo Sie die Datenquelle URL definieren, versuchen Sie, characteren = UTF-8 an das Ende der URL

+0

Ich habe es hinzugefügt, aber das Problem geht weiter :( – malkomich

+1

Ich denke, dass nur in MySQL funktioniert –

Verwandte Themen