Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Probleme mit NLS_CHARACTERSET WE8ISO8859P1 und UTF8 in Oracle

http://docs.oracle.com/cd /B19306_01/server.102/b14225/ch2charset.htm#g1009784

Andererseits verwendet UTF-8 mehrere Bytes, um ein Symbol zu speichern.

Wenn Ihre Datenbank WE8ISO8859P1 verwendet und der Spaltentyp aus der VARCHAR-Gruppe (nicht NVARCHAR) stammt und Sie ein Symbol einfügen, dessen Code> 255 ist, wird dieses Symbol in WE8ISO8859P1 umgewandelt und einige Informationen gehen verloren.

Einfach ausgedrückt:Wenn Sie UTF-8 in eine Datenbank mit Einzelbyte-Zeichensatz einfügen, gehen Ihre Daten verloren.

Der obige Link beschreibt verschiedene Szenarien, wie dieses Problem angegangen werden kann.

Sie können auch Oracle asciistr ausprobieren /unistr funktioniert, aber im Allgemeinen ist es kein guter Weg, um mit solchen Problemen umzugehen.