OVH Cloud OVH Cloud

linux --> utf8, gcc --> utf16 ???

1 réponse
Avatar
mglcosta
bonjour à tous,

Voici le premier message que je depose dans un forum. Pour ceux qui ce
poserait des questions, oui j'ai vécu dans une caverne depuis ce temps ;).
C'est pourquoi, je vais essayer d'^etre le plus clair possible.

Mon problème est le suivant :

Je dois porter des application windows sur linux. L'encodage windows est
l'unicode(utf-16). Apres avoir lu des docs, je me suis rendu compte que l'
UTF16 n'est pas portable. En effet, celui-ci utilise un "int" pour représenter
un "wide char". Et tout le monde sait que les "int" posent problèmes
(little, big endian).Sous linux (mais j'essai de généraliser à unix(sous
gcc)), l'encodage est UTF8 (sauf erreur de ma part).

J'ai configurer mon xterm pour ma'afficher toutes sortes de
caracteres(japonais, russe, ...), et cela fonctionne bien (Toujous en UTF8).

C'est alors que j'utilise les fonctions "wcstombs" et "mbstowcs". celles-ci ne
marche pas (en fait, toutes celles en relations avec les wide char). Elles me
donnent des résultats complètement erronées.

Je regarde dans les Headers de gcc, stddef.h, où est déclaré le type wchar_t.
Et grande surprise de voir que celui-ci est une définition d'un "int".

Pour conclure, je ne sait pas quoi penser. Linux est UTF8 (donc le type
wchar_t doit etre un simple char), mais les librairies de gcc fonctionne comme
de l'UTF16.

Que dois-je faire pour que mes programmes avec gcc utilise bien le bon type
de caractere étendu (UTF8).

Merci de m'aider,

Miguel.

1 réponse

Avatar
Shamil
D'apres FBI vous, miguel.c, avez écrit:

bonjour à tous,
bonjour,



T'as regardé cela http://www.tldp.org/HOWTO/Unicode-HOWTO-6.html#ss6.1 ?

--
Virtuellement votre