februar 7, 2022

Sql-server-Nvarchar til varchar til nvarchar tegn konvertering

Nei, det er ingen måte å «fikse» dataene fordi dataene ikke lenger er der. Når du konverterte til VARCHAR, ble de underliggende verdiene for hvert tegn endret TIL ASCII-verdien for ?. Dette er ikke et skjermproblem, disse tegnene er nå fysisk et vanlig spørsmålstegn. Du må gjøre en gjenoppretting fra en sikkerhetskopi, dessverre.

følgende eksempelkode viser at Når Et Unicode-tegn er konvertert til VARCHAR (forutsatt At Kodesiden betegnet Av Sorteringen ikke støtter det tegnet), blir Det et vanlig ‘ol-spørsmålstegn, og for alltid skal det forbli som sådan:

DECLARE @Character NCHAR(1) = NCHAR(0x3525);SELECT @Character AS , UNICODE(@Character) AS , ASCII(@Character) AS , UNICODE(CONVERT(VARCHAR(5), @Character)) AS , UNICODE(CONVERT(NVARCHAR(5), CONVERT(VARCHAR(5), @Character))) AS , ASCII('?') AS , UNICODE(N'?') AS ;-- 㔥 13605 63 63 63 63 63

følgende eksempel viser en forekomst Av Et Unicode-tegn som er svært tvilsomt (minst på dette tidspunktet) som skal støttes i de fleste skrifter, derfor vises det som en firkantet boks, men funksjonen UNICODE innebygd n viser at den underliggende koden fortsatt er riktig Unicode-Kodepunkt:

SELECT NCHAR(0xABBF), N'ꮿ', UNICODE(N'ꮿ');-- ꮿ ꮿ 43967

den faktiske karakteren kan ses her: Cherokee Liten Bokstav YA U + ABBF. Dette er et visningsproblem, og mange tegn som ikke er representert i ulike skrifter, vises på samme måte uten å endre den faktiske verdien av tegnet, men de er fortsatt forskjellige tegn.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.