У меня есть база данных в SQL Server, содержащая столбец, который должен содержать данные Unicode (он содержит адреса пользователей со всего мира, например, القاهرة для Cairo)
Этот столбец является столбцом nvarchar с сопоставлением по умолчанию для базы данных (Latin1_General_CI_AS), но я заметил, что данные вставляются в него с помощью операторов SQL, содержащих не английские символы, и отображаются как ?????.
Решение, похоже, заключается в том, что я не использовал префикс n, например,
INSERT INTO table (address) VALUES ('القاهرة')
Вместо:
INSERT INTO table (address) VALUES (n'القاهرة')
У меня сложилось впечатление, что Юникод будет автоматически преобразован для столбцов nvarchar, и мне не нужен этот префикс, но это, похоже, неправильно.
Проблема в том, что у меня все еще есть данные в этом столбце, которые отображаются как ????? в SQL Server Management Studio, и я не знаю, что это такое!
Данные все еще там, но в неправильной кодировке символов, которые не позволяют отображать их, но они все еще могут быть восстановлены (и если да, то как я могу их восстановить?), Или они исчезли навсегда?
Спасибо
Tom