将unicode(16位)数据转换为7位ascii

时间:2009-11-13 08:09:10

标签: c++

任何人都可以帮我将数据从unicode(16位)转换为7位ascii的数据吗?

3 个答案:

答案 0 :(得分:5)

您可以将unicode字符0..127映射到ASCII集。对于其他字符,没有7位ASCII等价物。你想对那些做什么?

答案 1 :(得分:3)

C ++语言本身没有任何内容可用于处理此类转换。您必须使用RTL / API函数。例如,如果您的应用程序在Windows平台上运行,则可以使用Win32 API WideCharToMultiByte()函数。如果你想要更便携的东西,请查看GNU的iconv库。

或者,您只需手动执行转换即可。 Unicode UTF-16非常容易手动解码,从那里值0-127是ASCII值。

答案 2 :(得分:2)

您希望将双字节unicode字符转换为utf7,这将为您提供可以在ascii字符集中表示的字符(并避免因无法处理具有最高位设置的字符的古董系统而出现乱码)。请注意,这会将多字节字符拆分为多个字符(如果读为ascii)。

示例代码可以在ibiblio.org找到(来自快速谷歌搜索)。未知许可证。