ログイン

ログイン

過去記事

月曜日 8月24日


金曜日 8月21日


土曜日 7月25日


金曜日 5月22日


月曜日 5月11日


水曜日 4月29日


日曜日 4月26日


金曜日 4月24日


水曜日 4月 1日

Twitter

By: TwitterButtons.com

QRコード

QR code

これからのイベント

-

 2010年9月10日(金) 19:34 JST

SQL Serverにハングル文字を登録

  • 2009年11月28日(土) 01:35 JST
  • 投稿者:
    nonoz

SQL Serverってたまにしか使わないので、よく忘れる・・・・

SQL Server にハングル文字を登録しようとして思いっきり躓きました。知っていればどうといったこともないことなんでしょうが。最近のMicrosoft製品は、(Microsoftに限らず世の中ほとんどそうかもしれませんが) Unicode対応されています。なので問題なくハングル文字とて登録できるものと思ってました。

ハングル文字を登録するINSERT文をファイルに書き込んでSQL ServerのManagement Studioで動かしてみる。と、なぜかハングル文字が「?」に化けます。しょうがないので、Visual Studioの Web Developerで C#のコードを書いて 先ほどのINSERT文のファイルを読み込み実行、、、、うまくいかない!

さっぱりわからなくて数日悩んでしまいました。(他の事に時間とられてたのもあるけど)

原因は SQLでハングル文字を表記するのに単純にシングルクオテーションで囲っただけだったからです。Unicode対応させるにはシングルクオテーションの前に「N」をつけなければなりません。「VALUES ( N'ハングル' ) 」みたいに。なんだよこれ、って正直思いました。普通に「VALUES ( 'ハングル' )」でいいやんけ!と思うんだけど、わざわざNをつけなきゃいけないという意味がわからんです。デフォルトUnicodeちゃうのん??

あと、ファイルのコードも、UTF8Nではダメで、UTF-16LE-BOMならC#で通りました。Management Studioのほうでは、UTF8Nでも通りましたけどね。UTF-16LE-BOMでしか通らないんだから、ますますNが必要な意味がわからんです。

慣れてる人ならこんなの常識なんでしょうけれどねぇ。

トラックバック

このエントリのトラックバックURL:
http://nzlab.nztype.net/trackback.php?id=20091128013506276
表示形式
コメント投稿

コメントは投稿者の責任においてなされるものであり、サイト管理者は責任を負いません。