Comment puis-je citer une Chaîne UTF-8 Littérale dans Sqlite3
Je suis à la recherche d'encoder et stocker l'Unicode dans une base de données Sqlite. Est-il possible de raw encoder en UTF-8 (unicode) chaîne de caractères littérale dans une requête sql.
Je suis à la recherche de quelque chose de similaire à java où je peux jeter un \u00E9 dans une chaîne de caractères et l'ont automatiquement convertir au format Unicode.
- Parlez-vous de le faire dans une application personnalisée, en Java, ou de l'SQLite interpréteur de commande?
Vous devez vous connecter pour publier un commentaire.
Quelle langue utilisez-vous? SQLite gère l'Unicode bien, à la création de la littéraux dans votre hébergement de la langue est moins évident.
SQLite n'a pas les séquences d'échappement. Mais votre langage de programmation n'est probablement.
ou
Si, pour quelque raison que vous avez à écrire un UTF-8 littérale en pur SQL, vous pouvez faire quelque chose comme:
Modifier: Depuis cette réponse a été écrit à l'origine, un CHAR fonction a été ajoutée à SQLite. Alors maintenant, vous pouvez écrire
Si votre problème est une réinterprétation des séquences d'échappement dans sqlite, vous pouvez (ab)utilisation json_extract par exemple.
Avis: des citations de la manipulation. Chaîne json valide commence et se termine avec " donc vous devez les ajouter avant de l'utiliser de json_extract
Si vous configurez votre base de données à utiliser l'UTF-8 (je crois que c'est par défaut pour de nombreuses installations; ne
PRAGMA encoding="UTF-8";
à la création du schéma de temps pour en être certain), cela ne devrait pas être un problème.Si vous envoyez SQLite3 un jeu de caractères codés en UTF-8, il ne devrait avoir aucun problème de traiter avec elle.
Si Java a la capacité pour vous permettre de "jeter un \u0039 dans une chaîne", je venais de l'utiliser, et de s'assurer que lorsque vous essayez de placer la corde dans la base de données, que vous avez de la chaîne de convertir en UTF-8 octets codage à l'aide quel que soit le mécanisme Java fournit. Je ne crois pas SQLite fournit ou a besoin de fournir ce pour vous.