Подобно этому вопросу в MySQL, я пытаюсь сохранить специальные символы, такие как смайлики, в столбце типа nvarchar. Однако любые смайлики преобразуются в «??». Я попытался воспроизвести решение вопроса, включая изменение типа столбца и сопоставления в SQL Server, но безуспешно.
Что я пытаюсь сделать:
INSERT INTO TableName
(Id, Title, Description)
VALUES
(1, 'This is my title 😀','Here is a description with a 📻 radio');
Где Title и Description столбцы nvarchar(255).
Полученная вставка выглядит так:
| Id | Title | Description |
|----|---------------------|---------------------------------------|
| 1 | This is my title ?? | Here is a description with a ?? radio |
Используя это, чтобы создать таблицу
CREATE TABLE TableName(
Id INT PRIMARY KEY,
Title NVARCHAR(255),
Description NVARCHAR(255)
);
Сортировка базы данных SQL_Latin1_General_CP1_CI_AS
Используйте N'Unicode literal'.
Попробуйте: INSERT INTO TableName (Id, Title, Description) VALUES (1, N'Это мой заголовок 😀', N'Вот описание с 📻 радио');
Спасибо! Это было на удивление легко


INSERT INTO TableName(Title,Description)
VALUES (N'👍 🖒 🖓 🖕 🗑 🛦 ⁉ 😎 😔 😇 😥 😴 😭',
N'👍 🖒 🖓 🖕 🗑 🛦 ⁉ 😎 😔 😇 😥 😴 😭');
Используйте строковый литерал префикса с "N' <"мой странный текст"> '"
Попробуйте также этот оператор «выбрать»:
SELECT N'👍 🖒 🖓 🖕 🗑 🛦 ⁉ 😎 😔 😇 😥 😴 😭'
Похоже, вы скопировали часть из этого ответа, так как смайлики идентичны.
Задавая вопрос, вы должны предоставить минимальный воспроизводимый пример: (1) DDL и выборочное заполнение данных, т. е. таблицы CREATE плюс операторы INSERT T-SQL. (2) Что вам нужно сделать, т. е. логика и ваш код попытаются реализовать ее в T-SQL. (3) Желаемый результат, основанный на примерных данных в # 1 выше. (4) Ваша версия SQL Server (SELECT @@version;).