Je cherche à encoder et à stocker Unicode dans une base de données SQLite. Y a-t-il un moyen d'encoder un littéral de chaîne UTF-8 (Unicode) dans une requête SQL. P>
Je cherche quelque chose de similaire à Java où je peux jeter un \ u00e9 dans une corde et l'avoir automatiquement upconverver à UNICODE. P>
4 Réponses :
Si vous configurez votre base de données pour utiliser UTF-8 (je pense que c'est la valeur par défaut pour de nombreuses installations; faire Si vous envoyez SQLITE3 un ensemble de caractères codé dans UTF-8, il ne devrait pas avoir de problème de résoudre ce problème. P>
Si Java a la possibilité de vous permettre de "lancer un \ u0039 dans une chaîne", je l'utiliserais et assurez-vous que lorsque vous essayez de placer la chaîne dans la base de données, la chaîne convertit- Un codage d'octets UTF-8 utilisant tout mécanisme Java fournit. Je ne crois pas que SQLite fournit ou doit fournir ceci pour vous. P> pragma coding = "utf-8"; code> au temps de création de schéma pour être certain), cette ne devrait pas être un problème. p>
Pourquoi voudriez-vous "lancer un \ u0039 dans une chaîne"? Semble que ce serait beaucoup plus facile d'écrire "9".
Quelle langue utilisez-vous? SQLite poignée Unicode bien, créant les littéraux de votre langue d'hébergement est moins évident.
$ sqlite3 junk.sqlite SQLite version 3.6.22 sqlite> create table names (id integer primary key, name string); sqlite> insert into names values (null, 'îâ yõù gð¹Ñ·Ð ΣÏÐãׯ UTF-8, it stores it'); sqlite> select * from names; 1|îâ yõù gð¹Ñ·Ð ΣÏÐãׯ UTF-8, it stores it
SQLite n'a pas de séquences d'échappement. Mais votre langage de programmation fait probablement. ou P> INSERT INTO MyTable(MyColumn) VALUES(CHAR(233))
Si votre problème est la réinterprétation des séquences d'échappement dans SQLite, vous pouvez (AB) Utiliser JSON_Extract EG.
UPDATE `tableToFix` SET `columnToFix` = json_extract('"' || `columnToFix` || '"', '$'); INSERT INTO test VALUE (json_extract('"P\u0159\u00edli\u0161 \u017elu\u0165ou\u010dk\u00fd k\u016f\u0148 \u00fap\u011bl \u010f\u00e1belsk\u00e9 \u00f3dy."', '$'));
Parlez-vous de le faire dans une application personnalisée en Java ou de l'interprète de commandement SQLite?