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

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

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

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

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


person pavanred    schedule 21.05.2010    source источник
comment
Откуда ты знаешь, что это не сработало? Возможно, ваша программа запроса не может печатать символы Unicode. Какая программа показывает????? Откуда вы знаете, что он может правильно отображать Unicode?   -  person S.Lott    schedule 21.05.2010
comment
В студии управления SQL, когда я запрашиваю строку, она отображается как «????» и то же самое отражается в моей программе.   -  person pavanred    schedule 21.05.2010


Ответы (1)


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

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

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

person Guffa    schedule 21.05.2010
comment
+1 за пример. Спасибо Гуфа. Был еще один поток, который предложил префикс «N». Но я не совсем понял, где именно это сделать. - person pavanred; 21.05.2010
comment
Я уже использовал тип ntext , но всегда показываю ????, когда пытаюсь добавить арабские символы - person abdou_dev; 22.09.2020