2011-09-22 11 views
0

sqlserverに辞書テーブルを作成しています。SQLにUnicodeコードを挿入

私は、挿入するユニコードコード\ U0C2D \ u0C3E \ u0C37を持っています。国際的な文字を表示するためにsqlserverに挿入するときにそれらをエンコードする方法。

私はその特定の列のデータ型としてNCHARを使用しています。コメントnonnbとして

おかげ K

+0

で見つけることができますか?それがデータアクセスライブラリを介している場合、ほとんどの現代のものはUnicode対応です。 –

+2

\ u0C2D \ u0C3E \ u0C37は実際にはユニコードではなく、ユニコード文字の独自の文字列エンコーディングです。 ChrisKellyによれば、これらの文字を(SQLや他の言語で)デコードし、「N」という接頭辞を使用して挿入することができます。 INSERT INTO MyTable VALUES(N'ΔЙק、7叶葉馬 ') – StuartLC

+0

まず、\ u0C2D \ u0C3E \ u0C37という文字列をデコードしてから、?を挿入する必要があります。私はテーブルに挿入するSQLスクリプトファイルを使用しています。私はどのようにそれらのユニコードコードを解読するのか分かりません.plsヘルプ。 – user597677

答えて

4

、あなたはおそらく、あなたのINSERT文でのUnicodeリテラル構文を使用することができます。何らかの理由でUnicodeのリテラル構文を使用できず、特定のコードポイントをエンコードする必要がある場合は、NCHAR()関数を使用します。次の例では、両方を示しています。NCHAR()のための

-- create temp table for this example 
create table #TestDictionary (
    [Key] nchar(10), 
    Value nvarchar(100) 
) 

-- insert dictionary entries for the 3 specific code points mentioned 

insert into #TestDictionary ([Key],Value) 
values (nchar(0x0C2D), 'TELUGU LETTER BHA') 

insert into #TestDictionary ([Key],Value) 
values (nchar(0x0C3E), 'TELUGU VOWEL SIGN AA') 

insert into #TestDictionary ([Key],Value) 
values (nchar(0x0C37), 'TELUGU LETTER SSA') 

-- If your keyboard allows you to type it into the script directly then it 
-- is probably easiest to just use unicode literal syntax. 
insert into #TestDictionary ([Key],Value) 
values (N'క ', 'TELUGU LETTER KA') 

-- Non-unicode string literals can also be inserted into NCHAR/NVARCHAR columns 
insert into #TestDictionary ([Key],Value) 
values ('A', 'LATIN CAPITAL LETTER A') 


select * 
from #TestDictionary 

リファレンスおよび実施例は、あなたからの挿入を行っているhttp://msdn.microsoft.com/en-us/library/ms182673.aspx

+0

クリス、返事をありがとう。それらのユニコード文字列をデコードする方法。 – user597677

+0

クリス、私の一日を本当にありがとうございました...あなたの助けに感謝します。これが私が探しているものです。 – user597677

+0

#TestDictionary([Key]、Value)の値(nchar(0x0C350x0C460x0C280x0C15)、 'A Telugu Word')に複数の文字を含む単語を挿入すると、構文エラーが発生します。 – user597677