Est-il possible de disposer de SQL Server convertir classement de l'UTF-8 / UTF-16

Dans un projet que je suis en train de travailler sur mes données stockées dans SQL Server, avec le classement Danish_Norwegian_CI_AS. Les données de sortie de l'ed par FreeTDS et ODBC, python qui gère les données en UTF-8. Certains personnages, comme å, ø æ, ne sont pas codé correctement, provoquant l'avancement du projet à paralysée.

J'ai passé quelques heures à lire sur le monde déroutant de codages, de classement et de code-pages, et se sentir comme j'ai eu une meilleure compréhension de l'ensemble de l'image.

Certains des articles que j'ai lu, me fait penser qu'il serait possible de: Spécifier dans l'instruction SQL select, que la collecte de données doit être encodé en UTF-8 quand il est sortie ed.

La raison pour laquelle je pense c'est possible, est cet article qui montre un exemple de la façon d'obtenir de tables, avec des classements différents, jouer bien ensemble.

Tous les pointeurs dans le sens de la conversion de classement de l'UTF-8 /UTF-16, serait grandement apprécié!

EDIT: j'ai lu que SQL Server fournit une option unicode par nchar, nvarchar et ntext, et que les autres variables de chaîne char, varchar et text sont codées selon le classement. J'ai aussi lu que le ci-dessus mentionné unicode options sont codés en utf-16 variante ucs-2 (j'espère que je suis se souvenir de ce droit). Ainsi, afin de permettre à des tables de paramètres régionaux de classement et d'unicode, jouer nice, il devrait y avoir une fonction de conversion, non?

un problème similaire à l'aide de mySQL et jdbc, cela a résolu mon problème. création des tables à l'aide de create table a(.....) DEFAULT CHARSET=utf8; et de la connexion à la base de données à l'aide de ' "jdbc:mysql://localhost/testDb?useUnicode=true&characterEncoding=UTF-8"; je suppose qu'il doit y avoir moyen avec MS SQL sever
Je vous remercie pour votre contribution. Malheureusement, la table est déjà créé et renseigné, ce n'est donc pas une option pour moi.
faire un essai avec un nouveau tableau et insérer des données de test juste pour être sûr que cela fonctionne. si il fait un alter table
Vous pouvez mettre par domaine d'encodage classement dans SqlServer. Donc, vous auriez besoin d'un second champ avec l'autre encodage. Je voudrais faire cela en mémoire de la table temporaire avec un classement explicite sur deux champs. Les données dans les deux champs peuvent sembler identiques, mais l'une a votre classement différent. Si cela fonctionne, alors vous pouvez affiner un peu plus. Aussi je voudrais essayer un changement de type de codage sur le côté de client indépendant de Sql. À partir de l'UTF-8 en binaire danois norvégien.
Il est donc possible de modifier l'ensemble de la table? Le problème, c'est qu'à la base de données est utilisée par notre système ERP. Par conséquent, la modification de l'encodage n'est pas une option :S j'ai pour obtenir la sortie de la compilation des tableaux, comme utf-8 ou utf-16..

OriginalL'auteur Rookie | 2015-05-16