OVH Cloud OVH Cloud

conversion japonais Unicode

18 réponses
Avatar
Elderion
pour une application C# Pocket PC a traduire en japonais je développe un
site intranet ASP.Net , et il faut que je fasse la chose suivante (mon post
précendant est erroné) :

le traducteur va traduire les messages francais de l'appli en japonais.
il va donc ecrire des ideogrammes dans des textBox

- il faut que je puisse convertir tous les ideogrammes en leur equivalence
unicode (quelque chose comme "#<code>") pour inserer les messages tout en
unicodes dans une base SQL

- il faut que lors du remplissage d'une textBox (depuis base SQL) de mon
appli, la page interprete le code unicode, de telle sorte a voir apparaitre
un ideogramme dans la textBox et non pas "#<code>"

une classe existe telle dans le Framework .Net pour faire ca ?

10 réponses

1 2
Avatar
TigrouMeow
"Elderion" a écrit dans le message de news:

pour une application C# Pocket PC a traduire en japonais je développe un
site intranet ASP.Net , et il faut que je fasse la chose suivante (mon
post précendant est erroné) :

le traducteur va traduire les messages francais de l'appli en japonais.
il va donc ecrire des ideogrammes dans des textBox

- il faut que je puisse convertir tous les ideogrammes en leur equivalence
unicode (quelque chose comme "#<code>") pour inserer les messages tout en
unicodes dans une base SQL

- il faut que lors du remplissage d'une textBox (depuis base SQL) de mon
appli, la page interprete le code unicode, de telle sorte a voir
apparaitre un ideogramme dans la textBox et non pas "#<code>"

une classe existe telle dans le Framework .Net pour faire ca ?



J'ai lançé exactement le même sujet il y a quelques jours.
Remonte un peu dans le temps, j'ai fait un sujet "Désencoder du
HTML-encoded".
Avatar
Elderion
je comprend pas trop le :
char c = (char)int.Parse(22899);

mais bon il me faudrait plutot un objet qui transforme tous les unicode mon
texte en equivalent japonais
paske si je fais la syntaxe ci dessus pour tous les ideogrammes japonais /
table unicode , j'ai pas fini !
Avatar
Zim
Elderion a écrit :
pour une application C# Pocket PC a traduire en japonais je développe un
site intranet ASP.Net , et il faut que je fasse la chose suivante (mon post
précendant est erroné) :

le traducteur va traduire les messages francais de l'appli en japonais.
il va donc ecrire des ideogrammes dans des textBox

- il faut que je puisse convertir tous les ideogrammes en leur equivalence
unicode (quelque chose comme "#<code>") pour inserer les messages tout en
unicodes dans une base SQL

- il faut que lors du remplissage d'une textBox (depuis base SQL) de mon
appli, la page interprete le code unicode, de telle sorte a voir apparaitre
un ideogramme dans la textBox et non pas "#<code>"

une classe existe telle dans le Framework .Net pour faire ca ?





Pourquoi souhaitez-vous transformer vos idéogrammes en #<code> ? Votre
base de données ne gère pas les caractères unicodes (comme nvarchar pour
SQL Server) ?
Avatar
Elderion
En fait je cherche à :
1- inserer un message en japonais dans une table (SQL Server 2000) , a
partir d'une requete exécutée par une page ASP net.
2- afficher un message en japonais issu d'une table, dans un textBox d'une
page ASP net

pour l'etape 1 :
Je ne sais pas si le mieux est d'inserer directement les ideogrammes ou leur
equivalent unicode
J'ai essayé en inserant directement des ideogramme via Entreprise Manager
(en modifiant directement une ligne dans la table), ca marche, le message
est en japonais
Mais si je fais une requete INSERT a partir du Query Analyser, le message
contient des '????'

pour l'etape 2 :
je verrai une fois l'etape 1 resolue ;-)

Vous auriez une idee ?





"Zim" <"r[omuald].szymanskiANTI"@SPAM.laposte.net> a écrit dans le message
de news: %
Elderion a écrit :
pour une application C# Pocket PC a traduire en japonais je développe un
site intranet ASP.Net , et il faut que je fasse la chose suivante (mon
post précendant est erroné) :

le traducteur va traduire les messages francais de l'appli en japonais.
il va donc ecrire des ideogrammes dans des textBox

- il faut que je puisse convertir tous les ideogrammes en leur
equivalence unicode (quelque chose comme "#<code>") pour inserer les
messages tout en unicodes dans une base SQL

- il faut que lors du remplissage d'une textBox (depuis base SQL) de mon
appli, la page interprete le code unicode, de telle sorte a voir
apparaitre un ideogramme dans la textBox et non pas "#<code>"

une classe existe telle dans le Framework .Net pour faire ca ?



Pourquoi souhaitez-vous transformer vos idéogrammes en #<code> ? Votre
base de données ne gère pas les caractères unicodes (comme nvarchar pour
SQL Server) ?


Avatar
Zim
Elderion a écrit :
En fait je cherche à :
1- inserer un message en japonais dans une table (SQL Server 2000) , a
partir d'une requete exécutée par une page ASP net.
2- afficher un message en japonais issu d'une table, dans un textBox d'une
page ASP net

pour l'etape 1 :
Je ne sais pas si le mieux est d'inserer directement les ideogrammes ou leur
equivalent unicode
J'ai essayé en inserant directement des ideogramme via Entreprise Manager
(en modifiant directement une ligne dans la table), ca marche, le message
est en japonais
Mais si je fais une requete INSERT a partir du Query Analyser, le message
contient des '????'



SQL Server gère les caractères Unicodes sans trop de soucis.
Il suffit pour cela que le champ récepteur soit de type Nchar (ou
Nvarchar voire Ntext).

D'autre part, afin de pouvoir lire les idéogrammes, il suffit d'utiliser
une font unicode (Arial Unicode MS, par exemple) ... si ce n'est pas le
cas, effectivement des points d'interrogation apparaitront.
Avatar
Zim
D'autre part, si vous faites des insertions manuellement, n'oubliez pas
le préfixe Unicode N avant toute chaine de caractères :

INSERT maTable VALUES(N'ideogrammes');
Avatar
Elderion
merci excellant
avec le N ca marche super

cependant connaissez vouss une fonction SQL qui permette dans l'INSERT
d'enregistrer non pas l'ideogramme mais le code unicode associé

genre:
INSERT INTO MATABLE VALUES
('testunicode', 'french', convertir_en_unicode (N'?'),
'04/04/2005','04/05/2005')

comme ca dans mon champs il n'y aurait pas ? mais le code unicode
correspondant

ca me sera utile plus tard.


"Zim" <"r[omuald].szymanskiANTI"@SPAM.laposte.net> a écrit dans le message
de news: %
D'autre part, si vous faites des insertions manuellement, n'oubliez pas le
préfixe Unicode N avant toute chaine de caractères :

INSERT maTable VALUES(N'ideogrammes');


Avatar
Zim
Elderion a écrit :
merci excellant
avec le N ca marche super

cependant connaissez vouss une fonction SQL qui permette dans l'INSERT
d'enregistrer non pas l'ideogramme mais le code unicode associé

genre:
INSERT INTO MATABLE VALUES
('testunicode', 'french', convertir_en_unicode (N'?'),
'04/04/2005','04/05/2005')

comme ca dans mon champs il n'y aurait pas ? mais le code unicode
correspondant

ca me sera utile plus tard.


"Zim" <"r[omuald].szymanskiANTI"@SPAM.laposte.net> a écrit dans le message
de news: %

D'autre part, si vous faites des insertions manuellement, n'oubliez pas le
préfixe Unicode N avant toute chaine de caractères :

INSERT maTable VALUES(N'ideogrammes');








Effectivement, il existe une fonction T-SQL qui s'appelle ... Unicode()
SELECT Unicode(N'ideogramme') renvoie un entier correspondant au code.
Avatar
Zim
Décidemment, je ne sais pas tout mettre en un seul mail.
La fonction inverse est NChar(code) où code est l'entier correpondant à
l'idéogramme.
Avatar
adebaene
Elderion wrote:
merci excellant
avec le N ca marche super

cependant connaissez vouss une fonction SQL qui permette dans l'INSERT
d'enregistrer non pas l'ideogramme mais le code unicode associé



Mais *c'est* le code associé qui est enregistré! En interne,
n'importe quelle chaîne (Unicode ou non) est toujours stockée comme
une suite de valeurs numériques ("code points" dans la charabia
Unicode). Tu ne t'imagines quand même pas que ta base de données
stocke une copie de la bitmap de chaque idéogramme!

L'idéogramme, il n'est utilisé que pour le rendu à l'écran du
charactère, et comme on te l'a déjà dit, çà c'est une question de
police de caractères, c'est tout!
Si tu vois des "???", c'est que tu essaies d'afficher des idéogrammes
avec une police qui n'a pas les images correspondantes à ces code
points (où alors que tu te plantes sur l'encoding des caractères,
mais c'est peu probable si tu ne travailles que sous Windows - dans ce
càs l'encoding sera toujours UCS2).

Arnaud
MVP - VC
1 2