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

时间: 2024-12-16 02:34:32

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

在泛型类中写一个Dictionary属性,用来接收附加参数

protected IDictionary<string, object> _outputValues = new Dictionary<string, object>(StringComparer.OrdinalIgnoreCase); /// <summary> /// 附加参数 /// </summary> public IDictionary<string, object> OutputValues { get { return _out

百度上传工具webuploader,图片上传附加参数

项目中需要上传视频,图片等资源.最先做的是上传图片,开始在网上找了一款野鸡插件,可以实现图片上传预览(无需传到后台).但是最近这个插件出了莫名的问题,不易修复,一怒之下,还是决定找个大点的,靠谱的插件吧.加之上传视频就是用的webuploader,所以上传图片也理所当然选它了. 插件初始化,js引用什么的,官方文档上都写的比较清楚,建议直接去官方api去看 http://fex.baidu.com/webuploader/getting-started.html#图片上传 官方api上值给出了上

Hibernate打印SQL及附加参数

今天在项目运行过程中,一直报一个org.hibernate.exception.GenericJDBCException: could not insert 异常,Root Cause是IBM  DB2 ErrorCode=-180,sqlstate=22007,经过Google,发现这个错误的原因是因为Timestamp的格式不规范导致,但是具体是哪一项,却不太清楚,如果能够打印出导致问题的SQL语句,那么对于这类问题的定位就会非常容易了. 在Hibernate的配置文件hibernate.c

android string.xml中的高级用法,包括附加参数、特殊字体等

一.特殊字体用法 <b></b>加粗字体 <i></i> 斜体字体 <u></u> 给字体加下划线 \n 换行 \u0020表示空格 \u2026表示省略号 使用<b>和<b>来打印出<b></b> 这样的文字:"<"表示"<"的意思: 二.添加参数 (一)不使用xliff的用法: 1.整型,比如"小姐今年23岁了"

ajaxfileupload 附加参数

jQuery.extend({ createUploadIframe: function(id, uri) { //create frame var frameId = 'jUploadFrame' + id; if(window.ActiveXObject) { var io = document.createElement('<iframe id="' + frameId + '" name="' + frameId + '" />'); if(ty

libiconv gbk utf-8 转 unicode

#include <stdio.h> #include <string.h> #include <stdlib.h> #include "iconv.h" #define CODE_UNICODE "UCS-2LE" int code_convert(const char *pFromCharset, const char *pToCharset, char *pInBuf, size_t nInLen, char *pOutBu

PHP中的mb_convert_encoding与iconv函数介绍

php传输乱码 mb_convert_encoding这个函数是用来转换编码的.原来一直对程序编码这一概念不理解,不过现在好像有点开窍了. 不过英文一般不会存在编码问题,只有中文数据才会有这个问题.比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码. mb_convert_encoding的用法见官方: http://cn.php.net/manual/zh/func

php中iconv函数使用方法

iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库. 1.下载libiconv函数库http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.9.2.tar.gz: 2.解压缩tar -zxvf libiconv-1.9.2.tar.gz; 3.安装libiconv        #configure --prefix=/usr/local/iconv        #make        #make install 4.重新编译

php转换字符串编码 iconv与mb_convert_encoding的区别

PHP判断字符串编码函数mb_detect_encoding总结 iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5) mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5) iconv — 字符串按要求的字符编码来转换mb_convert_encoding — 转换字符的编码 这两个函数功能类似都是用来转