Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

I caratteri UTF-8 vengono salvati come ?? all'inserimento, ma viene salvato correttamente all'aggiornamento

Mostra la tua dichiarazione di inserimento. C'è - molto probabilmente - un N mancante:

DECLARE @v NVARCHAR(100)='Some Hindi from Wikipedia मानक हिन्दी';
SELECT @v;

Risultato:Some Hindi from Wikipedia ???? ??????

SET @v=N'Some Hindi from Wikipedia मानक हिन्दी';
SELECT @v;

Risultato:Some Hindi from Wikipedia मानक हिन्दी

Il N davanti alla stringa letterale dice a SQL-Server di interpretare il contenuto come unicode (per l'esattezza:come ucs-2 ). Altrimenti verrà trattato come un ASCII esteso con codifica a 1 byte , che non è in grado di gestire tutti i personaggi...