Ich versuche, ein Ersatzpaar einzufügen (‚‘, \uD852\uDF62
, die gleiche wie U+24B62
von this example) in MySQL.Einfügen ein Ersatzpaar in MySQL mit einer INSERT-Anweisung
Ein INSERT
mit einem unescaped wörtlichen, von this answer vorgeschlagen:
INSERT INTO unicode_test (value) VALUES ('');
-- or
INSERT INTO unicode_test (value) VALUES (_utf8'');
mit
nichtError Code: 1366. Incorrect string value: '\xF0\xA4\xAD\xA2' for column 'value' at row 1
(beachten Sie, dass \xF0\xA4\xAD\xA2
auf den ursprünglichen Wert von \uD852\uDF62
nicht einmal in der Nähe ist).
Auf der anderen Seite, beide
INSERT INTO unicode_test (value) VALUES (_utf16'');
und
INSERT INTO unicode_test (value) VALUES (_utf8mb4'');
erfolgreich zu sein, aber die sind eingefügten Werte unterscheidet sich von dem Original.
Meine Datenbank verwendet den utf8mb4
Zeichensatz, also nehme ich an, dass es Surrogate transparent behandelt.
Was ist die empfohlene Methode zum Einfügen von Nicht-BMP-Zeichen in MySQL?
'\ xF0 \ XA4 \ xAD \ xA2' _UTF-8_ Expression von Codepunkt ist' U + 24b62' (oder '\ uD852 \ uDF62' in _UTF-16_). – JosefZ
Eine weitere Referenz: http://unicode.scarfboy.com/?s=%F0%A4%AD%A2 –