Vérifier l'encodage de texte dans SQlite
Je suis un cauchemar qui concerne la non Européenne textes dans SQlite. Je pense que le problème est que SQlite n'est pas l'encodage du texte en UTF8. Je tiens donc à vérifier que l'encodage est, et nous espérons changer en utf8. J'ai encodé un fichier CSV en UTF8 et simplement importé à SQlite, mais la non-romain texte est tronqué.
Je voudrais savoir:
1)comment vérifier l'encodage.
2)Comment changer l'encodage si elle n'est pas en utf8. J'ai été lire sur le Réseau de l'encodage, mais je ne suis pas sûr de la façon de les utiliser.
J'ai utilisé OpenOffice 3 pour créer une feuille de calcul avec la moitié anglais et moitié du texte en Japonais. Ensuite, j'ai enregistré le fichier au format CSV à l'aide de l'utf8. Cette partie semble être ok. J'ai aussi essayé de le faire à l'aide de Google Docs et il a bien fonctionné. Ensuite, j'ai ouvert SQlite Browser et n'import CSV. Le texte anglais se montre parfaitement, mais les Japonais texte est tronqué symboles. Je pense que sqlite est à l'aide d'un dfferent encodage (peut-être utf16?).
J'ai mis à jour ma Question. Le texte affiché dans SQlite browser est illisible.
OriginalL'auteur | 2010-12-26
Vous devez vous connecter pour publier un commentaire.
Vous pouvez tester l'encodage avec cette pragma:
Vous ne peut pas changer l'encodage pour une base de données existante. Pour créer une nouvelle base de données avec un codage spécifique, ouvrez une connexion SQLite pour un fichier vide, exécutez cette pragma:
Et puis de créer votre base de données.
Si vous avez une base de données et la nécessité d'un codage différent, alors vous avez besoin pour créer une nouvelle base de données avec le nouveau codage, puis recréer le schéma et l'importation de toutes les données.
Toutefois, si vous avez un problème avec texte tronqué, c'est à peu près toujours un problème avec l'un des outils utilisés, pas SQLite lui-même. Même si SQLite est à l'aide d'un codage différent en fonction, le seul résultat est que cela va causer un surcroît de calcul comme SQLite convertit stockées codage de l'API demandée encodage en permanence. Si vous utilisez autre chose que le C-niveau de l'API, alors vous ne devez jamais vous soucier de codage--l'API est utilisée par l'outil que vous utilisez va dicter l'encodage doit être utilisé.
De nombreux SQLite outils ont montré les problèmes de déformation du texte dans notre de SQLite, y compris la ligne de commande de coquilles. Essayez d'exécuter SQLite à partir d'une ligne de commande et de le dire à importer le fichier lui-même au lieu de passer par SQLite Browser.
Pour cela, créez un fichier vide d'abord, puis de l'ouvrir avec sqlite3_open(), puis exécuter PRAGMA encoding = "UTF-8"? Quelle est la différence entre ouvrir une connexion SQLite vs créer la base de données? Je ne suis pas sûr de comprendre la différence entre l'ouverture d'une connexion SQLite et la création de la base de données. Merci!
OriginalL'auteur Samuel Neff