2011-09-22 2 views
0

Я создаю таблицу словаря в sqlserver.Вставить код Юникода в SQL

У меня есть коды юникода \ u0C2D \ u0C3E \ u0C37 для вставки. Как закодировать их при вставке в sqlserver, чтобы показать международный характер.

Я использую NCHAR как тип данных для данного столбца.

Благодаря K

+0

Где вы делаете вставку из? Если это через библиотеку доступа к данным, большинство современных - это Unicode. –

+2

\ u0C2D \ u0C3E \ u0C37 на самом деле не юникод, это проприетарное строковое кодирование символов Юникода. Согласно ChrisKelly, вам нужно будет декодировать эти символы (в SQL или на другом языке), а затем вы можете вставить их с помощью префикса «N», например. INSERT INTO MyTable VALUES (N'ΔЙ ק, 7 あ 叶葉 말 ') – StuartLC

+0

Вы имеете в виду, прежде всего, мне нужно декодировать строку \ u0C2D \ u0C3E \ u0C37, а затем вставить ?. Я использую файл сценария sql для вставки в таблицу. Я понятия не имею, как декодировать эти коды unicode..pls help. – user597677

ответ

4

Как nonnb прокомментировал, вероятно, можно просто использовать синтаксис литерала Unicode в операторах INSERT. Если по какой-то причине вы не можете использовать буквенный синтаксис Unicode и должны кодировать определенную точку кода, используйте функцию 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 

Ссылка и примеры для NCHAR() можно найти на сайте http://msdn.microsoft.com/en-us/library/ms182673.aspx

+0

Крис, спасибо за ответ. Как декодировать эти строки unicode. – user597677

+0

Крис, спасибо тебе, ты сделал мой день ... ценю твою помощь. Это то, что я точно ищу. – user597677

+0

Как создать слово с несколькими символами, подобными этой вставке в значения #TestDictionary ([Key], Value) (nchar (0x0C350x0C460x0C280x0C15), «Слово телугу»), я получаю синтаксическую ошибку. – user597677

Смежные вопросы