将多字节字符转换为UTF-8

时间:2010-01-21 10:14:58

标签: utf-8 character-encoding multibyte

我的应用程序必须将数据写入XML文件,该文件将由swf文件读取。 swf期望XML中的数据采用UTF-8编码。我必须将我的应用程序中的一些多字节字符(简体中文,日语,韩语等)转换为UTF-8。       是否有任何API调用可以允许我这样做?我宁愿不使用任何第三方dll。我需要在Windows和Mac上都这样做,如果可用的话,我更喜欢任何系统API。

由于 jbsp72

2 个答案:

答案 0 :(得分:2)

UTF-8是一种多字节编码(嗯,确切地说是一个可变字节长度编码)。声明您需要从多字节编码转换是不够的。您需要指定哪个多重编码源是什么?

答案 1 :(得分:0)

  

我必须转换一些Multibyte   我的应用中的字符(中文   简体,日语,韩语等。)到   UTF-8。

如果您的原始字符串是多字节(中文/阿拉伯文/泰文/等...)并且您需要将其转换为其他多字节(UTF-8),一种方法是首先转换为WideCharacter(UTF-16),然后转换回多字节。

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

如果你的原始字符串已经是Unicode(UTF-16),你可以跳过上图中的第一个转换

您可以参考MSDN的代码页。

Google Chrome为Windows,Linux和Mac提供了一些字符串转换功能。您可以看到它herehere。文件在src / base下:
+ sys_string_conversions.h
+ sys_string_conversions_linux.cc
+ sys_string_conversions_win.cc
+ sys_string_conversions_mac.mm

该代码使用BSD许可证,因此您可以将其用于商业项目。