Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Les caractères UTF-8 sont enregistrés sous ?? lors de l'insertion, mais est enregistré correctement lors de la mise à jour

Montrez votre déclaration d'insertion. Il y a - très probablement - un N manquant :

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

Résultat :Some Hindi from Wikipedia ???? ??????

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

Résultat :Some Hindi from Wikipedia मानक हिन्दी

Le N devant la chaîne littérale indique à SQL-Server d'interpréter le contenu comme unicode (pour être exact :comme ucs-2 ). Sinon, il sera traité comme un ASCII étendu codé sur 1 octet , qui n'est pas capable de traiter tous les caractères...