こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

SQLServerでSJIS 第3・第4水準を扱う

SQLServerでSJIS 第3・第4水準に対応したシステムを作るにはどうすれば良いのでしょうか?

照合順?か何かを変えると扱えたり、
バイナリデータ型でデータを格納すると、コード値から復号できるなり、
そういう方向なのかなとは想定しているのですが、これ以上は想像できていないのです。。
.

投稿日時 - 2017-12-01 00:33:51

QNo.9403176

困ってます

質問者が選んだベストアンサー

>SQLServerでSJIS 第3・第4水準に対応したシステムを作るにはどうすれば良いのでしょうか?

データベースのテーブル内のフィールドを、Unicode対応のフィールドで設計し、Unicodeでデータを保存します。

つまり、フィールドタイプchar、varchar、textの代わりにnchar、nvarchar、ntextを使います。

SQLSreverの内部コードページはcp932(MS932)になっているので、第三水準、第四水準の一部の漢字が扱えません(cp932では、第三水準、第四水準の一部の漢字しか割り当てられていません)

第三水準、第四水準の全部の漢字を格納するには、Unicodeが必須となります。

フィールドタイプnchar、nvarchar、ntextを使う事により、データベースに「Unicode」で保存されるようになります(言い換えると、データベースの入出力時に、Unicodeにコード変換する必要がある)

ですので、システム全体(アプリケーション本体)も「内部の文字コードにUnicodeを使う」と良いと思います(と言うか、第三水準、第四水準の全部の漢字をサポートするには、内部文字コードも、外部とのインターフェース部分も、何もかも「Unicodeで行なう」必要があります)

投稿日時 - 2017-12-01 12:20:05

お礼

ありがとうございます!
理解できました!

投稿日時 - 2018-01-17 22:47:50

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)