免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 928 | 回复: 0
打印 上一主题 下一主题

utf8 utf16的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-02 16:35 |只看该作者 |倒序浏览
gaim的代码里对MSN传输的文件名解码是用这个函数:
file_name = g_utf16_to_utf8((const gunichar2 *)(bin + 20), -1,NULL, NULL, NULL);
  因为我用不了GTK的库。所以我自己用的系统的如下:但是问题是我的函数解不成!

  GAIM 里的函数把传入的字符串变成了(const gunichar2 *)(bin + 20)类型gunichar2也就是u_int16。而iconv是char *类型。请问从UTF16到UTF8不能用char *类型吗?或者我写的不对?各位请帮忙多谢!


static int utf16_to_utf8(char *dst, size_t dst_len, char *in)
{
        int     ret_conv;
        iconv_t cd;
        size_t  inleft  = strlen(in) + 1;
        size_t  dstleft = dst_len;

        cd = iconv_open("UTF-16", "UTF-8");
        if ((int)cd == -1) {
                perror("iconv_open:");
                return -1;
        }
        ret_conv = iconv(cd, &in, &inleft, &dst, &dstleft);
        if (ret_conv == -1) {
                perror("iconv:");
                return -1;  
        }
        iconv_close(cd);
        return 1;        
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP