2009-08-03 26 views
5

私のテスト環境が商標文字「™」をデータベースに保持していない瞬間に問題が発生しました。フォームのデータを入力して送信すると、サーバ側でリクエストに正しくエンコードされた文字が表示されますが、hibernateの「saveOrUpdate()」メソッドが呼び出されると、表は逆さまの疑問符として表示されます。Hibernate Oracleと文字エンコーディング

私はテーブルを調べるためにSqlDeveloperを使用していますが、行に直接ペーストしてコミットすることで文字を™に手動で変更できます。

私は、ハイバネートの永続性の方法が正しく機能していないと仮定しました。 Imはここで途方に暮れて、本当に、私は何をしようと知らない

は、私が設定した:設定ファイル内

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

性質を、運で。

テーブル内の私の列はNVARCHAR2(400 CHAR)です(最初はVARCHAR2でしたが、この問題のデバッグ中に変更しました)。

ここのお手伝いをよろしくお願いいたします。

マーク

答えて

6

[OK]を、ので、それは私が行うために必要なことはdefaultNChar接続プロパティを設定したことが判明。

Tomcatの私のアプリケーションのコンテキストファイルからこれを行いました。

私を啓発した記事はhereでした。

+0

こんにちはMArk、私たちはNCHARを使用していませんが、北欧の文字に問題があります。これらはISO-8859-1の一部です。それはいくつかの魔法をやってデータベースに書き込んでいるようです。 –

+0

リンクは現在死んでいる... :( – xenoterracide

関連する問題