スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

波ダッシュ問題

職場のPCが、WindowsXPからWindows7へ移行してきています。
Windows7では、11g以上でないとサポートしていないため、11gのOracleクライアントをインストールしています。

ちなみに、Oracleサーバは、10g(10.2.0.5)を利用しています。

ここで、クライアントのレジストリに登録された「NLS_LANG」のデフォルト値が、「JA16SJIS」から「JA16SJISTILDE」に変わったことが原因で、波ダッシュ問題が起きました。

・クライアントのNLS_LANG:JA16SJISTILDE
・サーバのキャラクタセット:JA16EUC

Unicodeとのマッピングは以下のようになっています。
local code    unicode
-----------   ----------
JA16SJIS
 0x8160  <-> U+301C
 0x8160  <-- U+FF5E
JA16SJISTILDE
 0x8160  <-> U+FF5E
 0x8160  <-- U+301C
JA16EUC
 0xA1C1  <-> U+301C
 0x8FA2B7 <-> U+FF5E
 0x8FA2B7 <-- U+0303
JA16EUCTILDE
 0xA1C1  <-- U+301C
 0xA1C1  <-> U+FF5E
 0x8FA2B7 --> U+FF5E
 0x8FA2B7 <-- U+0303

JA16SJISTILDEでは、CP932と同様のマッピングで、「U+301C(波ダッシュ)」ではなく「U+FF5E(全角チルダ)」にマッピングしています。
その結果、JA16EUCに変換される際、「0x8FA2B7(全角チルダ【3バイト】)」になっていたのです。

JA16SJISの方が正しいマッピング定義なんだから、個人的にはNLS_LANGのデフォルト値を「JA16SJIS」に戻すべきだと感じました。
関連記事
スポンサーサイト

この記事へのコメント

プロフィール

あんま覚えてへんわ


「あんま覚えてへんわ」です。

最新記事
最新コメント
月別アーカイブ
カテゴリ

openclose

カレンダー
10 | 2017/11 | 12
- - - 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 - -
ブログ内検索

アクセス数
アクセスランキング
[ジャンルランキング]
日記
5149位
アクセスランキングを見る>>

[サブジャンルランキング]
会社員・OL
975位
アクセスランキングを見る>>

天気予報
QRコード
QR
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。