作者:龙飞
3.1:GNU的libiconv项目
http://www.gnu.org/software/libiconv/
再一次的,感谢伟大的GNU。我们需要的是Unicode码,在程序中转换,我们需要相应的库。libiconv支持许多字符集,包括我们将用到的GB2312,UTF-8和UCS-2(Unicode)。具体的,在项目主页上有详细的说明。我们需要新学习直接用的类容并不繁多,同样的,如果你没什么兴趣自己编译源代码,可以直接用在win32下编译好的头文件,库和动态链接库(DLL)。win32下的项目主页是:
http://gettext.sourceforge.net/
有趣的是,作者把它作为了我们前面提到的gettext的一部分。在下载页面上,我们直接选择 libiconv-win32,同样的,我直接给出所需要的三部分文件的相关信息:
iconv.h:头文件,请在C++代码中#include进来;
iconv.lib:库文件,在编译时候使用;
iconv.dll:动态链接库,请放到exe文件能找到的路径下(通常与exe在同一文件夹下面)
下面,我们看看libiconv的使用方法。
3.2:libiconv的演示程序
我们还是边写程序边做说明:
3.1:GNU的libiconv项目
http://www.gnu.org/software/libiconv/
再一次的,感谢伟大的GNU。我们需要的是Unicode码,在程序中转换,我们需要相应的库。libiconv支持许多字符集,包括我们将用到的GB2312,UTF-8和UCS-2(Unicode)。具体的,在项目主页上有详细的说明。我们需要新学习直接用的类容并不繁多,同样的,如果你没什么兴趣自己编译源代码,可以直接用在win32下编译好的头文件,库和动态链接库(DLL)。win32下的项目主页是:
http://gettext.sourceforge.net/
有趣的是,作者把它作为了我们前面提到的gettext的一部分。在下载页面上,我们直接选择 libiconv-win32,同样的,我直接给出所需要的三部分文件的相关信息:
iconv.h:头文件,请在C++代码中#include进来;
iconv.lib:库文件,在编译时候使用;
iconv.dll:动态链接库,请放到exe文件能找到的路径下(通常与exe在同一文件夹下面)
下面,我们看看libiconv的使用方法。
3.2:libiconv的演示程序
我们还是边写程序边做说明:
#include
<
iostream
>
#include < string >
#include < iomanip >
#include " GNU/iconv.h "
void showHex( int x);
<iomanip>和showHex函数,是用来现实16进制的。我们在前面用过。
#include < string >
#include < iomanip >
#include " GNU/iconv.h "
void showHex( int x);
int
main(
int
argc,
char
*
argv[])
{
&nb
{
&nb

本文介绍了如何在Windows环境下利用GNU的libiconv库进行字符集转换,特别是从GB2312转换到UCS-2(Unicode)。通过一个简单的C++程序展示了libiconv的使用方法,但同时也提出了转换过程中遇到的问题,即转换后的编码为8位unsigned char,而非SDL所需的16位Uint16,并且在混合文本转换时可能遇到的障碍。
777

被折叠的 条评论
为什么被折叠?



