2009-07-07 13 views
0

C#でNhibernateを使用して中国語のキャラクタをoracle DBに保存しようとしていますが、保存されるキャラクタは常にゴミ文字で終わります。 は型AnsiString型と=「nvarchar型」SQL型として 列型として宣言されているフィールドのNHibernateを使用してoracleに中国語文字を保存する際の問題

  1. HBMマッピング:

    私は次のことを行っています。 また、Stringとnvarchar2 も試しました。

  2. データベース列のデータ型は NVARCHAR2です。
  3. レジストリ、環境 変数とデータベースの文字セット NLS_LANGはUTF8に設定されています。

私はSQLデベロッパーを通じて中国語の文字入力を読み取ることができます。しかし、私はそれらを(画面上に正しく表示文字)を取得しようとすると、変更せずにそれらをデータベースに保存しようとすると、保存されたデータは " "になりました。

誰でも私がここで逃したものは何か手がかりがありますか?

答えて

1

データが実際にが.NET側にあることを確認します。コンソールに表示されているものを信用しないでください - UTF-16コードポイントを見てください。

一般的なアプローチについては、debugging unicode articleを参照してください。

以前はOracleでいくつかの問題があったのを覚えているようですが、以前はデータベースのエンコーディングを設定してからデータベースを再構築するだけで済みました。既存のものには適用できませんでした。しかし、細部は暗く遠い過去にあります...

関連する問題