免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: rain_fish
打印 上一主题 下一主题

再请教一个问题,关于iconv的,返回失败,但转换成功了,不知道原因。 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2010-11-30 18:00 |只看该作者
问题原因找到,是由于size_t在32位和64位机上字节数不同所致!

论坛徽章:
0
12 [报告]
发表于 2011-01-07 13:14 |只看该作者
该问题顺利结贴了。

论坛徽章:
0
13 [报告]
发表于 2012-08-24 14:08 |只看该作者
那LZ最后代码怎么改的啊?

论坛徽章:
0
14 [报告]
发表于 2012-08-24 20:26 |只看该作者
本帖最后由 fiendcly 于 2012-08-24 20:27 编辑

記得 以前寫 UTF-8 轉 BIG5 的痛苦指數很高....

因為 BIG5 的 編碼範圍 比 UTF-8 小.

所以 BIG5 常會因為編碼範圍的問題讓 ICONV 報錯...

我記得我當時的解法是 遇到 ICONV 出錯停下來時我就會 走 遞回 把 停在出錯的字元上的 字元轉成 UNICODE HTML &#XX;

再接下去把 UTF-8 下面要轉的重新接上來.

我也被 ICONV 折磨過~>_<"

论坛徽章:
0
15 [报告]
发表于 2012-08-25 11:35 |只看该作者
本帖最后由 lc-soft 于 2012-08-25 11:36 编辑

回复 14# fiendcly
居然挖坟。。。

刚进帖发现LZ的代码好眼熟,原来我之前搞编码转换也复制粘贴了这代码,但现在已经改用其它方式实现了。
据说标准库自带编码转换函数。

   

论坛徽章:
0
16 [报告]
发表于 2017-04-18 08:34 |只看该作者
我也遇到了楼主的问题,确实是长度类型问题,把int转成size_t传入iconv函数时导致长度不对,应该加个临时变量存储。
int CodeConvert(char *psFromCharset,char *psToCharset,char *psInputBuf,int iInputLen,char*psOutputBuf,int iOutputlen)  
{  
        iconv_t iConvHandle;   
        char **pInput = &psInputBuf;  
        char **pOutput = &psOutputBuf;  
        size_t inLen = iInputLen;
        size_t outLen = iOutputlen;
       
        iConvHandle = iconv_open(psToCharset,psFromCharset);  
        if (iConvHandle == 0)
        {
                fprintf(stderr, "iconv_open Error[%s]!",strerror(errno));       
                return -1;
        }
          
        if (iconv(iConvHandle,pInput,&inLen,pOutput,&outLen) == -1)
        {
                fprintf(stderr, "iconv Error[%s]!",strerror(errno));
                iconv_close(iConvHandle);
                return -1;  
        }
       
        iconv_close(iConvHandle);  
        return 0;  
}

论坛徽章:
3
15-16赛季CBA联赛之佛山
日期:2016-11-04 14:21:2015-16赛季CBA联赛之山西
日期:2017-01-05 21:29:2715-16赛季CBA联赛之佛山
日期:2017-07-28 16:27:15
17 [报告]
发表于 2017-06-07 11:18 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP