

SQL Server超初心者です。(Oracleについては約1年ちょっとの経験はあります)どうぞよろしくお願いします。
今回SQL Server2005 を使って簡単なシステムを構築する事になりました。
SQL Serverが扱う文字コートについて教えてください。
Oracleを使っていた時の経験としてDB内部のキャラクターセットと
クライアントで使う文字セット(NLS_LANG)を意識しておかないと、いろんな「文字化け」問題に遭遇した時に対応できませんでした。
きっとSQL Serverにおいても同じような事ではないかと思いここに質問させていただきます。
以下2点についてどなたかコメント願います。
1.(Oracleでいうキャラクターセット)はどこで定義するのでしょうか?
2.OracleでいうNLS_LANGに相当するものはあるのでしょうか?
(ひょっとしたらマイクロソフト製品なのでサーバもクライアントもCP932固定なのでしょうか?)
根本的にはシステム構築する上で『極力文字化けに遭遇したくない』思い出このような質問をさせていただきました。
『文字化け』について注意点などありましたら合わせてコメントいただければ助かります。
以上よろしくお願いします。
No.2ベストアンサー
- 回答日時:
Windowsのロケールの設定を日本語にした状態でSQLServerをインストールした場合、cp932がデフォルトの照合順序になります。
照合順序については参考URLをご覧下さい。SQLServerではわかりませんが、PostgresではJDBCドライバ部分で変換していたように記憶しています。ODBCドライバではAutoTranslateという機能があります。
このため、ODBC接続で何も考えずにvarcharを使用するとcp932になります。
参考URL:http://www.microsoft.com/japan/msdn/sqlserver/sq …
No.1
- 回答日時:
1.2.の質問からはずれている回答かもしれませんが・・・
SQLServerでは使用するデータ型によって文字コードが指定されます。
・データ型がchar、varchar、textの場合
MS932(≒Shift_JIS) 日本語環境の場合
・データ型がnchar、nvarchar、ntextの場合
Unicode
同一システム内でMS932を使用するか、Unicodeを使用するかどちらかに統一することができれば、システム内で文字化けが発生することはありません。
ただ、char系は使用するバイト数、nchar系は使用する文字数で確保するサイズを指定するので注意が必要です。
例えば、varchar(80)は80バイト確保されますので半角文字で80文字分、全角文字で40文字分保存できますが、nvarchar(80)は80文字分確保されるので全角半角関係なく80文字きっかり保存できます。
tantanaさん回答ありがとうございます。
データ型によって内部でのキャラクターセットが異なる点理解しました。
ついでに以下の点についても教えてください。
「日本語環境の場合」と条件を記載されておりますが、
具体的には「何を持って」日本語環境となるのでしょうか?
またDB内部のキャラクタセットと、クライアント側のキャラクタセットが
異なる場合(例:VARCHARのデータをJDBCにてアクセスするような場合)
MS932→Unicode(UTF02?)への変換は何処で行われるのでしょうか?
ご存知であれば教えてください。
困り度を「暇なときにでも」としたせいか、
私の質問が的を外しているのか、どなたからも
コメントがなく不安でおりました。
tantanaさんのコメントに内心かなりホッ!としています。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
弁護士が解説!あなたの声を行政に届ける「パブリックコメント」制度のすべて
社会に対する意見や不満、疑問。それを発信する場所は、SNSやブログ、そしてニュースサイトのコメント欄など多岐にわたる。教えて!gooでも「ヤフコメ民について」というタイトルのトピックがあり、この投稿の通り、...
-
弁護士が語る「合法と違法を分けるオンラインカジノのシンプルな線引き」
「お金を賭けたら違法です」ーーこう答えたのは富士見坂法律事務所の井上義之弁護士。オンラインカジノが違法となるかどうかの基準は、このように非常にシンプルである。しかし2025年にはいって、違法賭博事件が相次...
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MySQLカラム名は日本語と英数字...
-
ODP.NETのバージョン確認
-
副問合せにLIKE文を使う方法は...
-
VBAで変数内に保持された二次配...
-
ヌル値は記憶容量を必要としな...
-
フリーのDBMSについて
-
テーブル作成でエラーが出てき...
-
MySQLの型のサイズ指定で速度は...
-
“埋め込む”の意味を教えてください
-
XAMPPのMySQLを外部から接続で...
-
Column '' not found.
-
Float型の時の計算結果がおかしい
-
実行時エラー80004005
-
経過時間(hhmmdd)をDATE型には...
-
「addslashes」と「htmlspecial...
-
mysql(mariaDB)の格納文字数は...
-
データベースについて
-
MySQLは起動しているが、PHPか...
-
ADOのバージョンを確認する方法
-
列数が多いと結果が行単位に改...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLカラム名は日本語と英数字...
-
SQL Server のキャラクターセッ...
-
SQLで日本語データを入力したい...
-
MyODBC 日本語サーバー対応版 ...
-
phpでmysqlのデータを表示する...
-
PHP経由でMYSQLに全角文字を格...
-
MySQLの日本語LIKE検索について
-
日本語TSVファイルのLOAD DATA ...
-
急に文字化けを起こすようにな...
-
文字コードMS932(Windows-31J...
-
小泉純一郎は文字化けしないが...
-
MySQL コマンド上の文字化けを...
-
文字化け
-
テキストファイルからのデータ...
-
日本語のデータがインポートで...
-
存在しているファイルがロード...
-
mysqlがインストールされている...
-
ODP.NETのバージョン確認
-
SQLのVARCHARとVARCHAR2の違い
-
副問合せにLIKE文を使う方法は...
おすすめ情報