iconv: iconv_open(pToCharset, pFromCharset); 的附加参数//IGNORE

今天在转换一个文件时iconv() 老是返回 -1, 提示编码转换失败。

 

一共 30 多个文件, 原编码都是一样的,为什么有的转换会失败,返回 -1呢?

 

网上搜索了一下, 找到一个随加参数: //IGNORE

说是 iconv_open() 的第一个参数后面最好加上 //IGNORE 

官方用法:iconv_open("gbk", "utf-8");  //将 utf-8 转换成 gbk
在实际操作中,需要(最好)在第1个参数后面加上“//IGNORE”,即: iconv_open("gbk//IGNORE", "utf-8");

 

我加上 //IGNORE 后,再测试,果然  iconv() 不再返回 -1

 

文件源编码:  utf-8, 想转换成 gbk

那如果我使用一个错误的编码, 只要加上 //IGNORE,是不是不会返回 -1:

iconv_open("gbk//IGNORE", "utf-16"); //这里故意使用错误的 utf-16

测试结果: iconv() 返回 -1

这下我放心了。

 

又搜索了一下相关资料, //IGNORE 的意义:(http://hi.baidu.com/breezelark/item/af7ec615c9588bd8be90427c)

 

加://IGNORE 

如果遇到无法转换的字符,就会直接舍弃,然后继续转换。

 

默认不加://IGNORE

如果遇到无法转换的字符,直接从第一个非法字符处前截断并抛出NOTICE(通知),iconv() 返回 -1。

 

2014-07-02

 

posted @ 2015-06-18 09:38  personnel  阅读(876)  评论(0编辑  收藏  举报
友情链接:图片批量处理工具 gif动态图制作工具 制作电子相册 图片排版工具 制作淘宝主图视频 MKScript 鼠标键盘自动化脚本语言