OVH Cloud OVH Cloud

[Unicode/UTF8/MBCS] Format, Conversion...

3 réponses
Avatar
Will
Bonjour!


Je cherche des infos sur le format des chaines de caractere sous Windows,
avez vous deja travaille dessus ?


Le type "wchar_t" est un "unsigned short",

Je voudrais comprendre le stockage des caracteres avec des chaines
ISO_XXXX_X et UTF8


- Est-ce que UTF8 est la meme chose que MBCS ?

- On peut representer une chaine ISO-LATIN-1 (ISO-8859-1) sur 8 bits (256
caracteres), mais qu'en est-il des autres langues ?

- Comment est-ce qu'on convertit concretement une chaine unicode en une
chaine MBCS ?


Merci.

3 réponses

Avatar
Franck Guillaud
Bonjour,

Will wrote:
Bonjour!


Je cherche des infos sur le format des chaines de caractere sous
Windows, avez vous deja travaille dessus ?



Les réponses à la plupart de vos questions sont ici :

http://www.codeproject.com/string/CPPStringGuide1.asp

Franck.



Le type "wchar_t" est un "unsigned short",

Je voudrais comprendre le stockage des caracteres avec des chaines
ISO_XXXX_X et UTF8


- Est-ce que UTF8 est la meme chose que MBCS ?

- On peut representer une chaine ISO-LATIN-1 (ISO-8859-1) sur 8 bits
(256 caracteres), mais qu'en est-il des autres langues ?

- Comment est-ce qu'on convertit concretement une chaine unicode en
une chaine MBCS ?


Merci.


Avatar
Christian ASTOR
Will wrote:

Je cherche des infos sur le format des chaines de caractere sous Windows,
avez vous deja travaille dessus ?



http://msdn.microsoft.com/archive/default.asp?url=/archive/en-us/dnarvc/html/msdn_mbcssg.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore98/HTML/_core_multibyte_character_sets_.28.mbcs.293a_.overview.asp
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vccore/html/_core_support_for_multibyte_character_sets_.28.mbcs.29.asp
KB 175392,
etc...
Avatar
Møgluglu
Will a écrit:
- Est-ce que UTF8 est la meme chose que MBCS ?



On peut considérer que UTF-8 est un codage MBCS. En général le mot MBCS
est plutôt utilisé pour les codages d'avant Unicode comme le Shift-JIS.

- On peut representer une chaine ISO-LATIN-1 (ISO-8859-1) sur 8 bits
(256 caracteres), mais qu'en est-il des autres langues ?



Il y a une série de ISO-8859-x pour les codages 8-bit (pour le français,
par exemple c'est l'ISO-8859-15). Mais d'autres codages (les MBCS,
notament UTF-8) peuvent utiliser un nombre d'octets variable par
caractère.

Unicode est un standard qui associe un numéro à chaque caractère
(actuellement ils en sont à 100 000 environ). Il ne définit pas
directement la façon dont sont codés ces numéros, mais définit trois
formats de codage :
- UTF-32 : chaque caractère occupe 4 octets
- UTF-16 : chaque caractère occupe 2 ou 4 octets
- UTF-8 : chaque caractère occupe entre 1 et 4 octets

Pour des raisons historiques, on parle encore de chaînes Unicode pour
désigner les chaînes UTF-16.

- Comment est-ce qu'on convertit concretement une chaine unicode en
une chaine MBCS ?



Pour convertir d'UTF-16 en UTF-8 :
WideCharToMultiByte(CP_UTF8, 0, source, -1, dest, tailleDest, NULL,
NULL);

--
Møgluglu