2009-08-03 5 views
5

Ich habe ein Problem in dem Moment, in dem meine Testumgebung nicht das Markenzeichen "™" in der Datenbank fortsetzt. Wenn ich die Formulardaten eingib, dann sende es, kann ich sehen, dass auf der Serverseite die Anfrage das korrekt codierte ™ -Zeichen hat, aber wenn dann der Aufruf von hibernates "saveOrUpdate()" -Methode aufgerufen wird, werden die Daten in der Tabelle zeigt sich als umgekehrtes Fragezeichen.Hibernate Oracle und Character Encoding

Ich benutze SqlDeveloper, um die Tabelle zu überprüfen, und ich kann das Zeichen manuell in ein ™ ändern, indem ich direkt in die Zeile einfügen und dann beginne, und es funktioniert.

Also habe ich die Annahme gemacht, dass Hibernates Methoden der Persistenz nicht korrekt funktionieren.

Im mit Verlust hier, wirklich, ich nicht, was nur wissen, um zu versuchen, ich habe das Set:

<property name="connection.useUnicode">true</property> 
<property name="connection.characterEncoding">utf-8</property> 

Eigenschaften in der Konfigurationsdatei, ohne Glück.

Meine Spalten in den Tabellen sind NVARCHAR2 (400 CHAR) (obwohl sie ursprünglich waren, nur VARCHAR2 zu starten, aber ich änderte sie während des Debuggen dieses Problems).

Jede Hilfe hier wird sehr geschätzt.

Mark

Antwort

6

Ok, so stellt sich heraus, dass das, was ich brauchte die defaultNChar Verbindungseigenschaft zu wahr gesetzt zu tun.

Ich habe dies über die Kontextdatei für meine App in Tomcat getan.

Der Artikel, der mich erleuchtete, war here.

+0

Hallo Märk, wir verwenden NCHAR nicht, aber wir sind mit nordischen Charakter konfrontiert. Sie sind Teil von ISO-8859-1. Es scheint beim Schreiben in die Datenbank etwas Magie zu geben. –

+0

Link ist jetzt tot ... :( – xenoterracide