码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2015-06-18 11:05:05      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

今天在转换一个文件时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

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

标签:

原文地址:http://www.cnblogs.com/personnel/p/4585003.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!