OVH Cloud OVH Cloud

Japonais -> Unicode

7 réponses
Avatar
Vital
Je migre une appli.base de donnée Oracle-Rdb japonaise vers SQL2000.
J'utilise un driver Oracle pour lire les données. Pour contrôle, j'affiche
dans une TextBox (MS Mincho font with japanese script) VB les chaines lues.
A ce niveau ce n'est pas de l'Unicode.

Question: comment mémoriser (convertir?) ces chaines dans des champs Unicode
(nVarChar) dans SQLserver?

Merci...

7 réponses

Avatar
Sylvain Lafontaine
Généralement, c'est à l'application cliente de convertir entre UTF-8 et
UTF-16. Oracle utilise UTF-8, vous pouvez donc utiliser les champs
binaires - binary, vbinary et image - pour mémoriser directements ces
chaînes sans conversion. Si vous avez à les convertir, utilisez l'outil de
conversion approprié à votre language de développement client.

Pour trouver des outils/algorithme de conversion, faite une recherche du
genre « UTF-8 UTF-16 conversion » sur Google.

S. L.

"Vital" wrote in message
news:%
Je migre une appli.base de donnée Oracle-Rdb japonaise vers SQL2000.
J'utilise un driver Oracle pour lire les données. Pour contrôle, j'affiche
dans une TextBox (MS Mincho font with japanese script) VB les chaines
lues.
A ce niveau ce n'est pas de l'Unicode.

Question: comment mémoriser (convertir?) ces chaines dans des champs
Unicode
(nVarChar) dans SQLserver?

Merci...




Avatar
Med Bouchenafa
Pourquoi le fait de les stocker directement dans des champs de type NVARCHAR ou NTEXT poserait-il
souci ?
Je ne crois pas comprendre quel est vraiment le problème ici ?
Peux-tu être plus explicite ?

Bien cordialement
Med Bouchenafa


"Vital" a écrit dans le message de news:
#
Je migre une appli.base de donnée Oracle-Rdb japonaise vers SQL2000.
J'utilise un driver Oracle pour lire les données. Pour contrôle, j'affiche
dans une TextBox (MS Mincho font with japanese script) VB les chaines lues.
A ce niveau ce n'est pas de l'Unicode.

Question: comment mémoriser (convertir?) ces chaines dans des champs Unicode
(nVarChar) dans SQLserver?

Merci...




Avatar
Boss Hog
Salut,
si ta chaine s'affiche correctement dans ton champ text VB tu doit pouvoir
la passer tel quel à ta procstoc SQL sans oublié le "N" Exemple:
MyPS N'chaine unicode1', N'chaine unicode2' Etc...
N etant le prefixe unicode.
ta table doit biensur avoir des champs de type nvarchar, ntext, nchar
Etc....
oula, si cela peut t'aider...
@+
Boss Hog

"Vital" wrote in message
news:%
Je migre une appli.base de donnée Oracle-Rdb japonaise vers SQL2000.
J'utilise un driver Oracle pour lire les données. Pour contrôle, j'affiche
dans une TextBox (MS Mincho font with japanese script) VB les chaines


lues.
A ce niveau ce n'est pas de l'Unicode.

Question: comment mémoriser (convertir?) ces chaines dans des champs


Unicode
(nVarChar) dans SQLserver?

Merci...




Avatar
Vital
Effectivement ce n'est pas si simple...

J'ai 2 appli.:
- une ancienne qui fonctionne sur un VAX avec OpenVMS et une base de donnée
Oracle-Rdb; une application VB qui tourne sur un PC windows98 japonais
permet de lire et mettre à jour les données en utilisant un driver ODBC pour
Oracle-Rdb. Rdb ne mémorise pas les chaînes de car. japonais dans le format
unicode (c'était les début de l'unicode à l'époque) mais pour
afficher/modifier ces chaines, il suffisait d'utiliser la police de car. MS
Mincho (+script japonais).

- une nouvelle qui fonctionne avec Win2000/SQL2000 et toujours une
application VB pour lire/modifier les données. Mais pour afficher/modifier
les chaines de car. japonais (mémorisé en format unicode [NVarChar] dans
SQLserver), un composant (UniToolBox) - qui gère les unicodes - a été
utilisé

Et maintenant je désire migrer les données de la dB Rdb vers SQLserver et
bien sûr mémoriser les chaines japonaises en unicode (standard?) car
autrement les programmes qui gèrent l'unicode (UniToolBox, CrystalReport,
etc.) ne les comprennent pas!

Des idées?

"Med Bouchenafa" wrote in message
news:
Pourquoi le fait de les stocker directement dans des champs de type


NVARCHAR ou NTEXT poserait-il
souci ?
Je ne crois pas comprendre quel est vraiment le problème ici ?
Peux-tu être plus explicite ?

Bien cordialement
Med Bouchenafa


"Vital" a écrit dans le message de news:
#
> Je migre une appli.base de donnée Oracle-Rdb japonaise vers SQL2000.
> J'utilise un driver Oracle pour lire les données. Pour contrôle,


j'affiche
> dans une TextBox (MS Mincho font with japanese script) VB les chaines


lues.
> A ce niveau ce n'est pas de l'Unicode.
>
> Question: comment mémoriser (convertir?) ces chaines dans des champs


Unicode
> (nVarChar) dans SQLserver?
>
> Merci...
>
>




Avatar
Med Bouchenafa
Pas simple effectivement,
Je suis tombé sur cet article de la KB qui propose plusieurs solutions.
http://support.microsoft.com/?id#2580
Celle qui me semble la plus simple est la N°4.
Stocker les données en VARBINARY et continuer à utiliser la police MS Mincho pour l'affichage

Une deuxième option consisterait à developper ton propre programme de conversion mais le tout est de savoir quel est le
format de stockage utilisé par Rdb
Il est possible que ce soit tout simplement du UTF8, dans ce cas des programmes de translations doivent exister.

Une autre option consisterait à se connecter directement, à partir de SQL Server, sur la base Rdb et importer les
données
Regarde si les informations de cette fiche ne peuvent pas t'aider
http://support.microsoft.com/?id#4748

Mais à mon avis, il faut commencer par t'assurer du format de stockage utilisé par Rdb
Je pense que tu peux trouver l'information dans le doc du produit ou en posant la question aux gens d'Oracle

Bien cordialement
Med Bouchenafa

"Vital" wrote in message news:
Effectivement ce n'est pas si simple...

J'ai 2 appli.:
- une ancienne qui fonctionne sur un VAX avec OpenVMS et une base de donnée
Oracle-Rdb; une application VB qui tourne sur un PC windows98 japonais
permet de lire et mettre à jour les données en utilisant un driver ODBC pour
Oracle-Rdb. Rdb ne mémorise pas les chaînes de car. japonais dans le format
unicode (c'était les début de l'unicode à l'époque) mais pour
afficher/modifier ces chaines, il suffisait d'utiliser la police de car. MS
Mincho (+script japonais).

- une nouvelle qui fonctionne avec Win2000/SQL2000 et toujours une
application VB pour lire/modifier les données. Mais pour afficher/modifier
les chaines de car. japonais (mémorisé en format unicode [NVarChar] dans
SQLserver), un composant (UniToolBox) - qui gère les unicodes - a été
utilisé

Et maintenant je désire migrer les données de la dB Rdb vers SQLserver et
bien sûr mémoriser les chaines japonaises en unicode (standard?) car
autrement les programmes qui gèrent l'unicode (UniToolBox, CrystalReport,
etc.) ne les comprennent pas!

Des idées?

"Med Bouchenafa" wrote in message
news:
> Pourquoi le fait de les stocker directement dans des champs de type
NVARCHAR ou NTEXT poserait-il
> souci ?
> Je ne crois pas comprendre quel est vraiment le problème ici ?
> Peux-tu être plus explicite ?
>
> Bien cordialement
> Med Bouchenafa
>
>
> "Vital" a écrit dans le message de news:
> #
> > Je migre une appli.base de donnée Oracle-Rdb japonaise vers SQL2000.
> > J'utilise un driver Oracle pour lire les données. Pour contrôle,
j'affiche
> > dans une TextBox (MS Mincho font with japanese script) VB les chaines
lues.
> > A ce niveau ce n'est pas de l'Unicode.
> >
> > Question: comment mémoriser (convertir?) ces chaines dans des champs
Unicode
> > (nVarChar) dans SQLserver?
> >
> > Merci...
> >
> >
>
>




Avatar
Steve Kass
Vital,

Jusqu'á maintenant, nous avez suggéré quelques idées, en anglais et en
français, mais tu ne nous as pas dit que tu as essayé une pour faire la
migration.

As-tu essayé la solution suggérée par Bart Duncan [MSFT] dans
microsoft.public.sqlserver.programming - c'est-à-dire exporter les
données vers un fichier texte, puis importer ce fichier vers la base SQL
Server. Si ça ne marche pas, svp nous donne plus de détails. Tu as
trois machines au moins: VAX; Win98 japonais; Win2000 Serveur - où
peux-tu toujours lire la texte japonaise, et où ne le peux-tu plus?

Si une solution suggérées ne marche pas, svp donne-nous les détails.

Steve Kass
Drew University

Vital wrote:

Effectivement ce n'est pas si simple...

J'ai 2 appli.:
- une ancienne qui fonctionne sur un VAX avec OpenVMS et une base de donnée
Oracle-Rdb; une application VB qui tourne sur un PC windows98 japonais
permet de lire et mettre à jour les données en utilisant un driver ODBC pour
Oracle-Rdb. Rdb ne mémorise pas les chaînes de car. japonais dans le format
unicode (c'était les début de l'unicode à l'époque) mais pour
afficher/modifier ces chaines, il suffisait d'utiliser la police de car. MS
Mincho (+script japonais).

- une nouvelle qui fonctionne avec Win2000/SQL2000 et toujours une
application VB pour lire/modifier les données. Mais pour afficher/modifier
les chaines de car. japonais (mémorisé en format unicode [NVarChar] dans
SQLserver), un composant (UniToolBox) - qui gère les unicodes - a été
utilisé

Et maintenant je désire migrer les données de la dB Rdb vers SQLserver et
bien sûr mémoriser les chaines japonaises en unicode (standard?) car
autrement les programmes qui gèrent l'unicode (UniToolBox, CrystalReport,
etc.) ne les comprennent pas!

Des idées?

"Med Bouchenafa" wrote in message
news:


Pourquoi le fait de les stocker directement dans des champs de type




NVARCHAR ou NTEXT poserait-il


souci ?
Je ne crois pas comprendre quel est vraiment le problème ici ?
Peux-tu être plus explicite ?

Bien cordialement
Med Bouchenafa


"Vital" a écrit dans le message de news:
#


Je migre une appli.base de donnée Oracle-Rdb japonaise vers SQL2000.
J'utilise un driver Oracle pour lire les données. Pour contrôle,






j'affiche


dans une TextBox (MS Mincho font with japanese script) VB les chaines






lues.


A ce niveau ce n'est pas de l'Unicode.

Question: comment mémoriser (convertir?) ces chaines dans des champs






Unicode


(nVarChar) dans SQLserver?

Merci...
















Avatar
Vital
Hi Steve,

j'espère pouvoir essayer la proposition de Bart bientôt; je m'occupe aussi
de support et suis très occupé en ce moment!

je vous tiendrai au courant dans tous les cas...
Merci.
"Steve Kass" wrote in message
news:
Vital,

Jusqu'á maintenant, nous avez suggéré quelques idées, en anglais et en
français, mais tu ne nous as pas dit que tu as essayé une pour faire la
migration.

As-tu essayé la solution suggérée par Bart Duncan [MSFT] dans
microsoft.public.sqlserver.programming - c'est-à-dire exporter les
données vers un fichier texte, puis importer ce fichier vers la base SQL
Server. Si ça ne marche pas, svp nous donne plus de détails. Tu as
trois machines au moins: VAX; Win98 japonais; Win2000 Serveur - où
peux-tu toujours lire la texte japonaise, et où ne le peux-tu plus?

Si une solution suggérées ne marche pas, svp donne-nous les détails.

Steve Kass
Drew University

Vital wrote:

>Effectivement ce n'est pas si simple...
>
>J'ai 2 appli.:
>- une ancienne qui fonctionne sur un VAX avec OpenVMS et une base de


donnée
>Oracle-Rdb; une application VB qui tourne sur un PC windows98 japonais
>permet de lire et mettre à jour les données en utilisant un driver ODBC


pour
>Oracle-Rdb. Rdb ne mémorise pas les chaînes de car. japonais dans le


format
>unicode (c'était les début de l'unicode à l'époque) mais pour
>afficher/modifier ces chaines, il suffisait d'utiliser la police de car.


MS
>Mincho (+script japonais).
>
>- une nouvelle qui fonctionne avec Win2000/SQL2000 et toujours une
>application VB pour lire/modifier les données. Mais pour


afficher/modifier
>les chaines de car. japonais (mémorisé en format unicode [NVarChar] dans
>SQLserver), un composant (UniToolBox) - qui gère les unicodes - a été
>utilisé
>
>Et maintenant je désire migrer les données de la dB Rdb vers SQLserver et
>bien sûr mémoriser les chaines japonaises en unicode (standard?) car
>autrement les programmes qui gèrent l'unicode (UniToolBox, CrystalReport,
>etc.) ne les comprennent pas!
>
>Des idées?
>
>"Med Bouchenafa" wrote in message
>news:
>
>
>>Pourquoi le fait de les stocker directement dans des champs de type
>>
>>
>NVARCHAR ou NTEXT poserait-il
>
>
>>souci ?
>>Je ne crois pas comprendre quel est vraiment le problème ici ?
>>Peux-tu être plus explicite ?
>>
>>Bien cordialement
>>Med Bouchenafa
>>
>>
>>"Vital" a écrit dans le message de news:
>>#
>>
>>
>>>Je migre une appli.base de donnée Oracle-Rdb japonaise vers SQL2000.
>>>J'utilise un driver Oracle pour lire les données. Pour contrôle,
>>>
>>>
>j'affiche
>
>
>>>dans une TextBox (MS Mincho font with japanese script) VB les chaines
>>>
>>>
>lues.
>
>
>>>A ce niveau ce n'est pas de l'Unicode.
>>>
>>>Question: comment mémoriser (convertir?) ces chaines dans des champs
>>>
>>>
>Unicode
>
>
>>>(nVarChar) dans SQLserver?
>>>
>>>Merci...
>>>
>>>
>>>
>>>
>>
>>
>
>
>
>