2010-01-21 8 views
0

Mon application doit écrire des données dans un fichier XML qui sera lu par un fichier swf. Le swf s'attend à ce que les données dans le XML soient en codage UTF-8. Je dois convertir des caractères multi-octets dans mon application (chinois simplifié, japonais, coréen, etc.) en UTF-8. Y a-t-il des appels d'API qui pourraient me permettre de faire cela? Je préférerais ne pas utiliser de DLLs tierces. Je dois le faire à la fois sur Windows et sur Mac et préférerais toutes les API du système si elles sont disponibles.Conversion de caractères multi-octets en UTF-8

Merci jbsp72

Répondre

0

je dois convertir des caractères multi-octets dans mon application (chinois simplifié , japonais, coréen, etc ..) à UTF-8.

si votre chaîne d'origine est multi-octets (chinois/arabe/thaï/etc ..) et vous devez le convertir en un autre multi-octets (UTF-8), La première consiste à convertir en WideCharacter (UTF-16) d'abord, puis reconvertir en multi-octets.

multibyte(chinese/arabic/thai/etc) -> widechar(UTF-16) -> multibyte(UTF-8) 

si votre chaîne d'origine est déjà en Unicode (UTF-16), vous pouvez sauter la première conversion dans l'illustration ci-dessus

vous pouvez consulter la page de code de MSDN.

Google Chrome propose des implémentations de conversion de chaînes pour Windows, Linux et Mac. Vous pouvez le voir here ou here. les fichiers sont sous src/base:
+ sys_string_conversions.h
+ sys_string_conversions_linux.cc
+ sys_string_conversions_win.cc
+ sys_string_conversions_mac.mm

Le code utilise une licence BSD afin que vous puissiez l'utiliser pour des projets commerciaux.

2

UTF-8 est un codage multi-octets (bien, un codage de longueur d'octet variable pour être précis). Indiquer que vous devez convertir un encodage multi-octets ne suffit pas. Vous devez spécifier dont codage multibye votre source est?

+0

Veuillez également spécifier l'environnement/la langue pour lesquels vous avez besoin. –

Questions connexes