2021年10月27日(水) 10:07 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
表示形式
コメント投稿

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