2010-05-21 2 views
20

Как я могу вставить арабские символы в базу данных sql? Я попытался вставить арабские данные в таблицу, а арабские символы в скрипте вставки были вставлены как '??????' в таблицу.Как вставить арабские символы в базу данных sql?

Я попытался непосредственно вставить данные в таблицу через студию управления sql, и арабские символы были успешно и точно вставлены.

Я искал разрешения для решения этих проблем, и некоторые темы предложили изменить тип данных на nvarchar вместо varchar. Я тоже это пробовал, но без везения.

Как мы можем вставить арабские символы в базу данных sql?

+0

Как вы знаете, это не Работа? Возможно, ваша программа запросов не может печатать символы Unicode. В какой программе отображается «????»? Как вы знаете, что он может показать Unicode правильно? –

+0

В студии управления SQL, когда я запрашиваю строку, она отображается как «????» и то же самое отражается в моей программе. – pavanred

ответ

40

Для того чтобы поле могло содержать символы Юникода, вы должны использовать тип nvarchar (или другое подобное, как ntext, nchar).

Чтобы вставить символы Юникода в базу данных, вы должны отправить текст в виде Юникода, используя тип параметра, например nvarchar/SqlDbType.NVarChar.

(Для полноты: если вы создаете SQL динамически (от общих советов), вы кладете N перед строкой буквальной, чтобы сделать его юникод. Например:. insert into table (name) values (N'Pavan'))

+0

+1 для примера. Спасибо, Гуффа. Был еще один поток, который предложил префикс «N». Но я не был уверен, где именно это сделать. – pavanred

+1

+1 для вашей части полноты, очень информативно. –

+0

+1 для 'SqlDbType.NVarChar' –