String to UNICODE

String to UNICODE - Java - Programmation

Marsh Posté le 23-10-2002 à 11:31:29    

Arggggg pas moyen de trouver !!!!
 
En fait je cherche un moyen pour transformer une bête String en sa version UNICODE (hexa).
 
Exemple é = 00E8
 
Je voudrais bien à partir de String t = "è" récupérer une autre String avec "00E8".  
 
Si quelqu'un a déjà fait ca  :hello:

Reply

Marsh Posté le 23-10-2002 à 11:31:29   

Reply

Marsh Posté le 23-10-2002 à 11:40:16    

T'es sur que c pas plutot "E800" au lieu de "00E8" ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-10-2002 à 11:46:10    

oui

Reply

Marsh Posté le 23-10-2002 à 11:55:00    

J'ai pas mal galéré sur Unicode, et j'ai toujours vu les caractères Unicode codés de la sorte : E800
 
A moins que ce soit un format spécial de l'unicode (dont je suis loin de saisir toutes les subtilités : entre Unicode, UTF-8 et autres, c un beau foutoir !) ?


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-10-2002 à 11:56:38    

Harkonnen> Problème d'"Endianness"...
 
A ma connaissance, rien ne fait ça, parce que peu de gens en ont l'utilité (pour s'affranchir des '\0', l'UTF-8 marche très bien).
 
Mais des convertisseurs int vers chaine hexa, c'est assez classique. Il suffit de prendre chaque caractère, et d'appliquer un truc du genre

Code :
  1. Integer.toHexString((int) myString.charAt(i)).toUpperCase()

. On concatène chaque chaine obtenue dans un StringBuffer et le tour est joué.


Message édité par BifaceMcLeOD le 23-10-2002 à 11:56:56
Reply

Marsh Posté le 23-10-2002 à 12:02:28    

BifaceMcLeOD a écrit a écrit :

Harkonnen> Problème d'"Endianness"...



Putain, Little Endian et Big Endian. Effectivement, je me ferais toujours avoir par ça... ;)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-10-2002 à 12:11:20    

Moi c'est les Comanches et les Apaches que je confonds.
 
[je suis déjà dehors]


---------------
Le site de ma maman
Reply

Marsh Posté le 23-10-2002 à 12:24:29    

Cherrytree a écrit a écrit :

Moi c'est les Comanches et les Apaches que je confonds.
 
[je suis déjà dehors]



[:leg9]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 23-10-2002 à 12:28:43    

Cherrytree a écrit a écrit :

Moi c'est les Comanches et les Apaches que je confonds.
 
[je suis déjà dehors]



Il faut t'envoyer des sioux ? Tu bosses à l'Arc ?
 
 
[:dehors2]


Message édité par gm_superstar le 23-10-2002 à 12:28:53

---------------
Incongru : une FAQ abandonnée sur les Standards du Web - FAQ périmée de blabla@Prog
Reply

Marsh Posté le 23-10-2002 à 13:49:41    

BifaceMcLeOD a écrit a écrit :

Harkonnen> Problème d'"Endianness"...
 
A ma connaissance, rien ne fait ça, parce que peu de gens en ont l'utilité (pour s'affranchir des '\0', l'UTF-8 marche très bien).
 
Mais des convertisseurs int vers chaine hexa, c'est assez classique. Il suffit de prendre chaque caractère, et d'appliquer un truc du genre

Code :
  1. Integer.toHexString((int) myString.charAt(i)).toUpperCase()

. On concatène chaque chaine obtenue dans un StringBuffer et le tour est joué.




 
effectivement è renvoit bien E8. J'ai un format propriétaire a la noix et le site d'unicode est down. Je ne comprends pas pq il veut que j'envoie 00E8 et pas bêtement E8.
 
une idée?
 
MERCI :jap:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 23-10-2002 à 13:49:41   

Reply

Marsh Posté le 23-10-2002 à 14:14:17    

utf16 :o


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
Reply

Marsh Posté le 23-10-2002 à 14:16:27    

--greg-- a écrit a écrit :

utf16 :o




 
bah non en fait parce que c'est du XML UTF-8 :o
mais bon je me pose pas la question plus longtemps puisque ca fonctionne ...


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 23-10-2002 à 14:22:55    

DarkLord a écrit a écrit :

 
 
effectivement è renvoit bien E8. J'ai un format propriétaire a la noix et le site d'unicode est down. Je ne comprends pas pq il veut que j'envoie 00E8 et pas bêtement E8.
 
une idée?
 
MERCI :jap:  




Ben oui, casté en int, le 'é' est plus petit que 256, donc sa valeur hexa tient sur 2 chiffres... Mais Unicode (UTF-16BE ou UTF-16LE), lui, code toujours ses caractères sur 16 bits, donc 4 chiffres hexa. Il faut donc que tu complètes à la mano ton code hexa avec le bon nombre de zéros à chaque caractère.


Message édité par BifaceMcLeOD le 23-10-2002 à 14:26:08
Reply

Marsh Posté le 23-10-2002 à 14:31:39    

DarkLord a écrit a écrit :

 
 
bah non en fait parce que c'est du XML UTF-8 :o
mais bon je me pose pas la question plus longtemps puisque ca fonctionne ...




UTF-8 est un encodage d'Unicode où chaque caractère a une longueur variable, entre 1 et 5 octets, en fonction de sa valeur. Le principal intérêt d'UTF-8 est qu'on y a la garantie qu'aucune chaîne ne contient d'octet à zéro, ce qui permet de manipuler toute chaîne UTF-8 pour un classique char* en C.
 
Maintenant, que ce soit largement utilisé par XML, c'est pour la même raison... même si sous nos latitudes, on utilise plutôt l'encodage ISO-Latin-1 (ou iso-8859-1, renommé win-1252 par Microsoft), qui a l'avantage d'encoder tous les caractères sur 1 octet et de contenir les 256 premiers caractères d'Unicode (d'où une conversion Unicode <--> ISO-Latin-1 très facile).


Message édité par BifaceMcLeOD le 23-10-2002 à 14:32:04
Reply

Marsh Posté le 24-10-2002 à 16:36:42    

DarkLord a écrit a écrit :

 
 
effectivement è renvoit bien E8. J'ai un format propriétaire a la noix et le site d'unicode est down. Je ne comprends pas pq il veut que j'envoie 00E8 et pas bêtement E8.
 
une idée?
 
MERCI :jap:  




En interne, Java fonctionne en Unicode (UCS-2 a priori mais je dis peut etre une betise).
 
Si j'ai bien compris, tu streamout ta chaine c'est ca ?
 
Le principe est que soit tu forces le format de ta stream au moment de l'init, soit tu la laisse telle qu'elle et elle s'adapte au codeset de la JVM (qui est en principe celui de l'OS par default, a part si tu balances un setlocale avant)
 
En fait y'a tellement de posts dans ce topic que je vois plus bien la question initiale  :pt1cable:  


---------------
Traduction FR de FileZilla Server
Reply

Marsh Posté le 25-10-2002 à 16:35:42    

Cherrytree a écrit a écrit :

Moi c'est les Comanches et les Apaches que je confonds.
 
[je suis déjà dehors]




 :lol:

Reply

Marsh Posté le 25-10-2002 à 16:45:55    

veryfree a écrit a écrit :

 
 :lol:  



:D


---------------
Le site de ma maman
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed