2009-08-03 21 views
5

Mam problem w momencie, w którym moje środowisko testowe nie utrzymuje znaku towarowego "™" w bazie danych. Kiedy wprowadzam dane formularza, a następnie przesyłam je, widzę, że po stronie serwera żądanie ma poprawnie zakodowany znak ™, ale wtedy, gdy wywoływane jest wywołanie metody "saveOrUpdate()" w trybie hibernacji, dane w tabela pojawia się jako odwrócony znak zapytania.Hibernuj Oracle i kodowanie znaków

Korzystam z SqlDeveloper do sprawdzania tabeli i mogę ręcznie zmienić znak na ™ poprzez wklejenie bezpośrednio do wiersza, a następnie zatwierdzenie i działa.

Tak więc założyłem, że metody utrzymywania hibernatów nie działają poprawnie.

Im ze stratą tutaj, naprawdę, ja po prostu nie wiem co próbować, mam ustawić:

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

właściwości w pliku konfiguracyjnym, bez powodzenia.

Moje kolumny w tabelach to NVARCHAR2 (400 CHAR) (chociaż pierwotnie były to tylko VARCHAR2, ale zmieniłem je podczas debugowania tego problemu).

Każda pomoc tutaj jest bardzo doceniana.

Mark

Odpowiedz

6

Ok, więc okazuje się, że to, co potrzebne do zrobienia było ustawić właściwość połączenia defaultNChar do prawdziwej.

Zrobiłem to poprzez plik kontekstowy dla mojej aplikacji w Tomcat.

Artykuł, który mnie oświecił, to: here.

+0

Witam, MArk, nie używamy NCHAR, ale mamy problem z nordyckim charakterem. Są częścią ISO-8859-1. Wydaje się, że podczas pisania do bazy danych robi trochę magii. –

+0

Link jest już martwy ... :( – xenoterracide

Powiązane problemy