0

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

感谢 jbsp72

4

2 回答 2

2

UTF-8 是一种多字节编码(准确地说,是可变字节长度编码)。仅说明需要从多字节编码进行转换是不够的。您需要指定您的源是哪种多重编码?

于 2010-01-21T11:08:11.097 回答
0

我必须将我的应用程序中的一些多字节字符(简体中文、日语、韩语等)转换为 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 的字符串转换实现。你可以在这里这里看到它。文件位于 src/base 下:
+ sys_string_conversions.h
+ sys_string_conversions_linux.cc
+ sys_string_conversions_win.cc
+ sys_string_conversions_mac.mm

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

于 2010-01-21T10:54:57.670 回答