Je me suis remis =E0 c++ assez r=E9cemment tout simplement parce que =E7a m=
e
plait et que =E7a r=E9pond pleinement =E0 mes besoins, cependant j'ai un
soucis et je ne sais pas comment faire.
En fait je voudrais extraire d'une base de donn=E9es sql serveur un
ensemble de textes et g=E9n=E9rer des fichiers xml. Mon probl=E8me est ici.
La base de donn=E9es est un windows-cp-1252 et les xml en utf8,
iso-8859-15, etc=85 en somme dans un type de codage de caract=E8res
diff=E9rent.
Comment vous vous y prenez pour effectuer les conversions ? je n'ai
pas trouv=E9 comment faire, hormis tenter de jouer avec le =ABsetlocale=BB.
Est-ce qu'il y a une autre mani=E8re de faire ? Je n'ai pas encore
commencer le d=E9veloppement, je ne fais qu'y r=E9fl=E9chir pour l'instant.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Mickaël Wolff
VenerZen wrote:
Comment vous vous y prenez pour effectuer les conversions ? je n'ai pas trouvé comment faire, hormis tenter de jouer avec le «setlocale». Est-ce qu'il y a une autre manière de faire ? Je n'ai pas encore commencer le développement, je ne fais qu'y réfléchir pour l'instant.
Le standard, ma connaissance, n'a pas de notion d'UTF-8. Il faut donc utiliser une bibliothèque externe, telle que ICU.
Comment vous vous y prenez pour effectuer les conversions ? je n'ai
pas trouvé comment faire, hormis tenter de jouer avec le «setlocale».
Est-ce qu'il y a une autre manière de faire ? Je n'ai pas encore
commencer le développement, je ne fais qu'y réfléchir pour l'instant.
Le standard, ma connaissance, n'a pas de notion d'UTF-8. Il faut donc
utiliser une bibliothèque externe, telle que ICU.
Comment vous vous y prenez pour effectuer les conversions ? je n'ai pas trouvé comment faire, hormis tenter de jouer avec le «setlocale». Est-ce qu'il y a une autre manière de faire ? Je n'ai pas encore commencer le développement, je ne fais qu'y réfléchir pour l'instant.
Le standard, ma connaissance, n'a pas de notion d'UTF-8. Il faut donc utiliser une bibliothèque externe, telle que ICU.
On Sat, 24 Oct 2009 04:19:29 -0700 (PDT), VenerZen :
base de données sql serveur
Je ne connais pas ce système (à moins que tu ne parles de MS SQL Server ?), mais je suppose qu'il implémente SQL.
La base de données est un windows-cp-1252
Le codage interne d'une base de données, on s'en fout. L'important, c'est l'encodage des requêtes SQL et de leurs réponses.
Si tu as besoin de UTF-8, demande donc à ton serveur de parler en UTF-8. Ça facilite énormément les choses, puisque tu n'as pas de conversion à faire. Pour MySQL, il suffit d'envoyer la requête suivante : SET NAMES 'utf8';
On Sat, 24 Oct 2009 04:19:29 -0700 (PDT), VenerZen
<venerzen@gmail.com>:
base de données sql serveur
Je ne connais pas ce système (à moins que tu ne parles de MS SQL
Server ?), mais je suppose qu'il implémente SQL.
La base de données est un windows-cp-1252
Le codage interne d'une base de données, on s'en fout. L'important,
c'est l'encodage des requêtes SQL et de leurs réponses.
Si tu as besoin de UTF-8, demande donc à ton serveur de parler en
UTF-8. Ça facilite énormément les choses, puisque tu n'as pas de
conversion à faire.
Pour MySQL, il suffit d'envoyer la requête suivante :
SET NAMES 'utf8';
On Sat, 24 Oct 2009 04:19:29 -0700 (PDT), VenerZen :
base de données sql serveur
Je ne connais pas ce système (à moins que tu ne parles de MS SQL Server ?), mais je suppose qu'il implémente SQL.
La base de données est un windows-cp-1252
Le codage interne d'une base de données, on s'en fout. L'important, c'est l'encodage des requêtes SQL et de leurs réponses.
Si tu as besoin de UTF-8, demande donc à ton serveur de parler en UTF-8. Ça facilite énormément les choses, puisque tu n'as pas de conversion à faire. Pour MySQL, il suffit d'envoyer la requête suivante : SET NAMES 'utf8';
James Kanze
On Oct 24, 12:19 pm, VenerZen wrote:
En fait je voudrais extraire d'une base de données sql serveur un ensemble de textes et générer des fichiers xml. Mon problème est ici. La base de données est un windows-cp-1252 et les xml en utf8, iso-8859-15, etc en somme dans un type de codage de caractères différent.
Comment vous vous y prenez pour effectuer les conversions ? je n'ai pas trouvé comment faire, hormis tenter de jouer avec le «setlocale». Est-ce qu'il y a une autre manière de faire ? Je n'ai pas encore commencer le développement, je ne fais qu'y réfléchir pour l'instant.
S'il y a un locale qui convient, tu peux en principe l'utiliser le codecvt facet ; si tu es en train de lire ou d'écrire avec les iostream, tu pourrais l'imbuer dans le flux, et la conversion se fera automatiquement. La façon classique ici, ce serait d'utiliser les wiostream et wchar_t en interne.
Une autre possibilité, si tu n'arrives pas à trouver le bon locale, serait d'utiliser une bibliothèque externe, comme iconv.
Enfin, si l'encodage d'entrée est single byte (c-à-d que chaque encodage n'occupe qu'un seul octet), le plus simple, souvent, c'est simplement un tableau de char const* const [256], avec le caractère source (converti en unsigned char) comme indice. L'initialisation de ce tableau est un peu fastidieux, avec plein des entrées du genre "xC2xA9", mais c'est ça t'embête, ce n'est pas trop difficile d'écrire un programme pour le générer, à partir d'un format plus convivial.
-- James Kanze
On Oct 24, 12:19 pm, VenerZen <vener...@gmail.com> wrote:
En fait je voudrais extraire d'une base de données sql serveur
un ensemble de textes et générer des fichiers xml. Mon
problème est ici. La base de données est un windows-cp-1252
et les xml en utf8, iso-8859-15, etc en somme dans un type de
codage de caractères différent.
Comment vous vous y prenez pour effectuer les conversions ? je
n'ai pas trouvé comment faire, hormis tenter de jouer avec le
«setlocale». Est-ce qu'il y a une autre manière de faire ? Je
n'ai pas encore commencer le développement, je ne fais qu'y
réfléchir pour l'instant.
S'il y a un locale qui convient, tu peux en principe l'utiliser
le codecvt facet ; si tu es en train de lire ou d'écrire avec
les iostream, tu pourrais l'imbuer dans le flux, et la
conversion se fera automatiquement. La façon classique ici, ce
serait d'utiliser les wiostream et wchar_t en interne.
Une autre possibilité, si tu n'arrives pas à trouver le bon
locale, serait d'utiliser une bibliothèque externe, comme iconv.
Enfin, si l'encodage d'entrée est single byte (c-à-d que chaque
encodage n'occupe qu'un seul octet), le plus simple, souvent,
c'est simplement un tableau de char const* const [256], avec le
caractère source (converti en unsigned char) comme indice.
L'initialisation de ce tableau est un peu fastidieux, avec plein
des entrées du genre "xC2xA9", mais c'est ça t'embête, ce
n'est pas trop difficile d'écrire un programme pour le générer,
à partir d'un format plus convivial.
En fait je voudrais extraire d'une base de données sql serveur un ensemble de textes et générer des fichiers xml. Mon problème est ici. La base de données est un windows-cp-1252 et les xml en utf8, iso-8859-15, etc en somme dans un type de codage de caractères différent.
Comment vous vous y prenez pour effectuer les conversions ? je n'ai pas trouvé comment faire, hormis tenter de jouer avec le «setlocale». Est-ce qu'il y a une autre manière de faire ? Je n'ai pas encore commencer le développement, je ne fais qu'y réfléchir pour l'instant.
S'il y a un locale qui convient, tu peux en principe l'utiliser le codecvt facet ; si tu es en train de lire ou d'écrire avec les iostream, tu pourrais l'imbuer dans le flux, et la conversion se fera automatiquement. La façon classique ici, ce serait d'utiliser les wiostream et wchar_t en interne.
Une autre possibilité, si tu n'arrives pas à trouver le bon locale, serait d'utiliser une bibliothèque externe, comme iconv.
Enfin, si l'encodage d'entrée est single byte (c-à-d que chaque encodage n'occupe qu'un seul octet), le plus simple, souvent, c'est simplement un tableau de char const* const [256], avec le caractère source (converti en unsigned char) comme indice. L'initialisation de ce tableau est un peu fastidieux, avec plein des entrées du genre "xC2xA9", mais c'est ça t'embête, ce n'est pas trop difficile d'écrire un programme pour le générer, à partir d'un format plus convivial.
-- James Kanze
VenerZen
On 25 oct, 02:55, Mickaël Wolff wrote:
VenerZen wrote: > Comment vous vous y prenez pour effectuer les conversions ? je n'ai > pas trouvé comment faire, hormis tenter de jouer avec le «setlocale ». > Est-ce qu'il y a une autre manière de faire ? Je n'ai pas encore > commencer le développement, je ne fais qu'y réfléchir pour l'inst ant.
Le standard, ma connaissance, n'a pas de notion d'UTF-8. Il faut d onc utiliser une bibliothèque externe, telle que ICU.
Ok, j'avais vu passer ça en installant boost et je me demandais justement à quoi ça correspondait.
Merci.
On 25 oct, 02:55, Mickaël Wolff <mickael.wo...@laposte.net> wrote:
VenerZen wrote:
> Comment vous vous y prenez pour effectuer les conversions ? je n'ai
> pas trouvé comment faire, hormis tenter de jouer avec le «setlocale ».
> Est-ce qu'il y a une autre manière de faire ? Je n'ai pas encore
> commencer le développement, je ne fais qu'y réfléchir pour l'inst ant.
Le standard, ma connaissance, n'a pas de notion d'UTF-8. Il faut d onc
utiliser une bibliothèque externe, telle que ICU.
VenerZen wrote: > Comment vous vous y prenez pour effectuer les conversions ? je n'ai > pas trouvé comment faire, hormis tenter de jouer avec le «setlocale ». > Est-ce qu'il y a une autre manière de faire ? Je n'ai pas encore > commencer le développement, je ne fais qu'y réfléchir pour l'inst ant.
Le standard, ma connaissance, n'a pas de notion d'UTF-8. Il faut d onc utiliser une bibliothèque externe, telle que ICU.
Ok, j'avais vu passer ça en installant boost et je me demandais justement à quoi ça correspondait.
Merci.
VenerZen
On 25 oct, 03:21, Fabien LE LEZ wrote:
On Sat, 24 Oct 2009 04:19:29 -0700 (PDT), VenerZen :
>base de données sql serveur
Je ne connais pas ce système (à moins que tu ne parles de MS SQL Server ?), mais je suppose qu'il implémente SQL.
>La base de données est un windows-cp-1252
Le codage interne d'une base de données, on s'en fout. L'important, c'est l'encodage des requêtes SQL et de leurs réponses.
Si tu as besoin de UTF-8, demande donc à ton serveur de parler en UTF-8. Ça facilite énormément les choses, puisque tu n'as pas de conversion à faire. Pour MySQL, il suffit d'envoyer la requête suivante : SET NAMES 'utf8';
Oui c'est MS Sql Server en version 2005 je crois. Je comptais m'y connecter à partir d'un serveur FreeBSD via TDS.
Je ne sais pas s'il existe cette possibilité avec ce sgbdr. Je note ça également. Merci.
On 25 oct, 03:21, Fabien LE LEZ <grams...@gramster.com> wrote:
On Sat, 24 Oct 2009 04:19:29 -0700 (PDT), VenerZen
<vener...@gmail.com>:
>base de données sql serveur
Je ne connais pas ce système (à moins que tu ne parles de MS SQL
Server ?), mais je suppose qu'il implémente SQL.
>La base de données est un windows-cp-1252
Le codage interne d'une base de données, on s'en fout. L'important,
c'est l'encodage des requêtes SQL et de leurs réponses.
Si tu as besoin de UTF-8, demande donc à ton serveur de parler en
UTF-8. Ça facilite énormément les choses, puisque tu n'as pas de
conversion à faire.
Pour MySQL, il suffit d'envoyer la requête suivante :
SET NAMES 'utf8';
Oui c'est MS Sql Server en version 2005 je crois. Je comptais m'y
connecter à partir d'un serveur FreeBSD via TDS.
Je ne sais pas s'il existe cette possibilité avec ce sgbdr. Je note ça
également. Merci.
On Sat, 24 Oct 2009 04:19:29 -0700 (PDT), VenerZen :
>base de données sql serveur
Je ne connais pas ce système (à moins que tu ne parles de MS SQL Server ?), mais je suppose qu'il implémente SQL.
>La base de données est un windows-cp-1252
Le codage interne d'une base de données, on s'en fout. L'important, c'est l'encodage des requêtes SQL et de leurs réponses.
Si tu as besoin de UTF-8, demande donc à ton serveur de parler en UTF-8. Ça facilite énormément les choses, puisque tu n'as pas de conversion à faire. Pour MySQL, il suffit d'envoyer la requête suivante : SET NAMES 'utf8';
Oui c'est MS Sql Server en version 2005 je crois. Je comptais m'y connecter à partir d'un serveur FreeBSD via TDS.
Je ne sais pas s'il existe cette possibilité avec ce sgbdr. Je note ça également. Merci.
VenerZen
On 25 oct, 11:16, James Kanze wrote:
On Oct 24, 12:19 pm, VenerZen wrote:
> En fait je voudrais extraire d'une base de données sql serveur > un ensemble de textes et générer des fichiers xml. Mon > problème est ici. La base de données est un windows-cp-1252 > et les xml en utf8, iso-8859-15, etc en somme dans un type de > codage de caractères différent. > Comment vous vous y prenez pour effectuer les conversions ? je > n'ai pas trouvé comment faire, hormis tenter de jouer avec le > «setlocale». Est-ce qu'il y a une autre manière de faire ? Je > n'ai pas encore commencer le développement, je ne fais qu'y > réfléchir pour l'instant.
S'il y a un locale qui convient, tu peux en principe l'utiliser le codecvt facet ; si tu es en train de lire ou d'écrire avec les iostream, tu pourrais l'imbuer dans le flux, et la conversion se fera automatiquement. La façon classique ici, ce serait d'utiliser les wiostream et wchar_t en interne.
Une autre possibilité, si tu n'arrives pas à trouver le bon locale, serait d'utiliser une bibliothèque externe, comme iconv.
Enfin, si l'encodage d'entrée est single byte (c-à-d que chaque encodage n'occupe qu'un seul octet), le plus simple, souvent, c'est simplement un tableau de char const* const [256], avec le caractère source (converti en unsigned char) comme indice. L'initialisation de ce tableau est un peu fastidieux, avec plein des entrées du genre "xC2xA9", mais c'est ça t'embête, ce n'est pas trop difficile d'écrire un programme pour le générer, à partir d'un format plus convivial.
-- James Kanze
Je crois que j'ai encore un paquet de documentation à lire. Ça m'a l'air complexe comme sujet. Merci.
On 25 oct, 11:16, James Kanze <james.ka...@gmail.com> wrote:
On Oct 24, 12:19 pm, VenerZen <vener...@gmail.com> wrote:
> En fait je voudrais extraire d'une base de données sql serveur
> un ensemble de textes et générer des fichiers xml. Mon
> problème est ici. La base de données est un windows-cp-1252
> et les xml en utf8, iso-8859-15, etc en somme dans un type de
> codage de caractères différent.
> Comment vous vous y prenez pour effectuer les conversions ? je
> n'ai pas trouvé comment faire, hormis tenter de jouer avec le
> «setlocale». Est-ce qu'il y a une autre manière de faire ? Je
> n'ai pas encore commencer le développement, je ne fais qu'y
> réfléchir pour l'instant.
S'il y a un locale qui convient, tu peux en principe l'utiliser
le codecvt facet ; si tu es en train de lire ou d'écrire avec
les iostream, tu pourrais l'imbuer dans le flux, et la
conversion se fera automatiquement. La façon classique ici, ce
serait d'utiliser les wiostream et wchar_t en interne.
Une autre possibilité, si tu n'arrives pas à trouver le bon
locale, serait d'utiliser une bibliothèque externe, comme iconv.
Enfin, si l'encodage d'entrée est single byte (c-à-d que chaque
encodage n'occupe qu'un seul octet), le plus simple, souvent,
c'est simplement un tableau de char const* const [256], avec le
caractère source (converti en unsigned char) comme indice.
L'initialisation de ce tableau est un peu fastidieux, avec plein
des entrées du genre "xC2xA9", mais c'est ça t'embête, ce
n'est pas trop difficile d'écrire un programme pour le générer,
à partir d'un format plus convivial.
--
James Kanze
Je crois que j'ai encore un paquet de documentation à lire. Ça m'a
l'air complexe comme sujet. Merci.
> En fait je voudrais extraire d'une base de données sql serveur > un ensemble de textes et générer des fichiers xml. Mon > problème est ici. La base de données est un windows-cp-1252 > et les xml en utf8, iso-8859-15, etc en somme dans un type de > codage de caractères différent. > Comment vous vous y prenez pour effectuer les conversions ? je > n'ai pas trouvé comment faire, hormis tenter de jouer avec le > «setlocale». Est-ce qu'il y a une autre manière de faire ? Je > n'ai pas encore commencer le développement, je ne fais qu'y > réfléchir pour l'instant.
S'il y a un locale qui convient, tu peux en principe l'utiliser le codecvt facet ; si tu es en train de lire ou d'écrire avec les iostream, tu pourrais l'imbuer dans le flux, et la conversion se fera automatiquement. La façon classique ici, ce serait d'utiliser les wiostream et wchar_t en interne.
Une autre possibilité, si tu n'arrives pas à trouver le bon locale, serait d'utiliser une bibliothèque externe, comme iconv.
Enfin, si l'encodage d'entrée est single byte (c-à-d que chaque encodage n'occupe qu'un seul octet), le plus simple, souvent, c'est simplement un tableau de char const* const [256], avec le caractère source (converti en unsigned char) comme indice. L'initialisation de ce tableau est un peu fastidieux, avec plein des entrées du genre "xC2xA9", mais c'est ça t'embête, ce n'est pas trop difficile d'écrire un programme pour le générer, à partir d'un format plus convivial.
-- James Kanze
Je crois que j'ai encore un paquet de documentation à lire. Ça m'a l'air complexe comme sujet. Merci.
Olivier Miakinen
Le 26/10/2009 11:17, VenerZen a écrit :
Je crois que j'ai encore un paquet de documentation à lire. Ça m'a l'air complexe comme sujet. Merci.
Commence quand même par vérifier l'hypothèse de Fabien LE LEZ : il y a toutes les chances que sa méthode fonctionne, et c'est bien sûr la plus simple.
Le 26/10/2009 11:17, VenerZen a écrit :
Je crois que j'ai encore un paquet de documentation à lire. Ça m'a
l'air complexe comme sujet. Merci.
Commence quand même par vérifier l'hypothèse de Fabien LE LEZ : il y a
toutes les chances que sa méthode fonctionne, et c'est bien sûr la plus
simple.
Je crois que j'ai encore un paquet de documentation à lire. Ça m'a l'air complexe comme sujet. Merci.
Commence quand même par vérifier l'hypothèse de Fabien LE LEZ : il y a toutes les chances que sa méthode fonctionne, et c'est bien sûr la plus simple.
VenerZen
On 26 oct, 11:21, Olivier Miakinen <om+ wrote:
Le 26/10/2009 11:17, VenerZen a écrit :
> Je crois que j'ai encore un paquet de documentation à lire. Ça m'a > l'air complexe comme sujet. Merci.
Commence quand même par vérifier l'hypothèse de Fabien LE LEZ : il y a toutes les chances que sa méthode fonctionne, et c'est bien sûr la pl us simple.
Oui, je n'y avais pas pensé. J'ai un premier projet a terminer et je vais m'attaquer à celui-ci courant novembre. Je fais ça surtout pour me remettre à niveau en c++, donc je n'ai pas vraiment de contrainte.
On 26 oct, 11:21, Olivier Miakinen <om+n...@miakinen.net> wrote:
Le 26/10/2009 11:17, VenerZen a écrit :
> Je crois que j'ai encore un paquet de documentation à lire. Ça m'a
> l'air complexe comme sujet. Merci.
Commence quand même par vérifier l'hypothèse de Fabien LE LEZ : il y a
toutes les chances que sa méthode fonctionne, et c'est bien sûr la pl us
simple.
Oui, je n'y avais pas pensé. J'ai un premier projet a terminer et je
vais m'attaquer à celui-ci courant novembre.
Je fais ça surtout pour me remettre à niveau en c++, donc je n'ai pas
vraiment de contrainte.
> Je crois que j'ai encore un paquet de documentation à lire. Ça m'a > l'air complexe comme sujet. Merci.
Commence quand même par vérifier l'hypothèse de Fabien LE LEZ : il y a toutes les chances que sa méthode fonctionne, et c'est bien sûr la pl us simple.
Oui, je n'y avais pas pensé. J'ai un premier projet a terminer et je vais m'attaquer à celui-ci courant novembre. Je fais ça surtout pour me remettre à niveau en c++, donc je n'ai pas vraiment de contrainte.