2012-04-19 10 views
0

oracleデータベースを持つ.net windowsアプリケーションの開発中です。我々の要件はUIの "&#188"を1/4(ascii 188)に置き換え、oracleテーブルに保存することです。しかし、値を置き換えた後、それはUIの "逆"の疑問符を表示しているし、oracleテーブルでは、私はpl/sql開発者を使用してテーブルをqueringしているときに疑問符として格納しています。Oracleと.netアプリケーションでの特殊文字の格納

このタイプの問題に対処している人はいますか? H Nミシュラ

答えて

0

ASCIIは0から127まで走る

おかげで、何のASCII文字188 U+00BC =¼、および00BCの六角確かに188進Unicode文字はありありません。それは答えのヒントです:ユニコードを使用すると、簡単です。幸運にも.NetはすでにUnicodeを使用しています.Oracleでは単純な設定です。

+0

他の値で置き換えられる350人以上のhtml charcatersがあり、私たちはそれらをOracleテーブルのすべてのものに置き換えて保持しています。ノートパッドからそれらの値をオラクルテーブルにコピーすると、1/4が "?"に変換されました。一方、開発されたマシンでは、.netインターフェースが正しい値、すなわち置換後の1/4を表示しますが、pl/sql開発者は "?"テーブルに。しかし、私のマシンでは、両方の.netインターフェイスとpl/sql開発者は "?"を表示します。 Windowにこれらの特殊文字の正しい値を表示するための設定はありますか? –

+0

@ H.N.Mishra:特殊文字のチェックにメモ帳を使用しないでください。あなたの問題はおそらくメモ帳によって引き起こされています。 – Codo

+0

@Codo:メモ帳には何の問題もありません。すべてのWindowsコンポーネントと同様、完全にUnicodeです。それゆえ、それは "特別な"文字の概念さえ持っていません。 'U + 00BC'は' U + 007C'や 'U + 8BFE'のような文字です。一方、Oracleでは、Latin-1などの複数の異なる文字エンコーディングが使用されます。 – MSalters

0

Oracleデータベースには、1/4文字を含まない文字セットが設定されているようです。 (ASCII文字セットには¼も含まれていないので、Unicodeコードポイント188を意味すると仮定しています)

ほとんどの場合、データベースの文字セットを変換する必要があります。私は完全なUnicode範囲をサポートするAL32UTF8(UTF-8)を推奨します。

character set migrationを示すOracleドキュメントがあります。

+0

Oracle DBで設定したCharcaterは、他の開発者マシンで正しく表示されているため、問題ありません。私はこれを正しく表示するために変更する必要のあるクライアントマシンのローカル設定を信じていますか? –

+0

@ H.N.Mishra:これが当てはまる場合、あなたの問題はOracleまたはデータベースにアクセスするための.NETコード(おそらくADO.NET)ではないと思います。彼らは基本的にUnicodeを使用するので、文字セットを完全に認識しており、問題を導入しません。データベースからUIまでのすべてのツールの完全なパイプラインを記述してください。パイプライン内のどのステップも1/4文字に変更されている可能性があります。 – Codo