Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

UTF-8-Zeichen werden gespeichert als ?? beim Einfügen, wird aber beim Update korrekt gespeichert

Zeigen Sie Ihre Insert-Anweisung. Da ist - sehr wahrscheinlich - ein N fehlt:

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

Ergebnis:Some Hindi from Wikipedia ???? ??????

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

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

Das N vor dem String-Literal weist den SQL-Server an, den Inhalt als unicode zu interpretieren (genauer:als ucs-2 ). Andernfalls wird es als 1-Byte-codiertes erweitertes ASCII behandelt , das nicht mit allen Zeichen umgehen kann...