今天在转换一个文件时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的更多相关文章

  1. ajaxFileUpload增加附加参数

    直接说方法: $.ajaxFileUpload({ data:{"a":123,"b":456};//附加参数,json格式 }); 然后在ajaxFileUp ...

  2. web大文件上传控件-设置附加参数-Xproer.HttpUploader6

    自定义附加字段在up6.js中定义,也可以不用定义: 注意: 1.附加字段必须是字符串类型. 2.如果附加字段的值包含中文,在上传前必须使用encodeURIComponent进行编码.     在引 ...

  3. 延申三大问题中的第一个问题处理---原先shell脚本中启动jar文件命令的配置,附加参数等

    经过一系列的试错,最终采用的解决办法如下: 采用的配置文件 附加的启动参数 或者把这些都给统一添加到ConfigMap中

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

    项目中需要上传视频,图片等资源.最先做的是上传图片,开始在网上找了一款野鸡插件,可以实现图片上传预览(无需传到后台).但是最近这个插件出了莫名的问题,不易修复,一怒之下,还是决定找个大点的,靠谱的插件 ...

  5. Hibernate打印SQL及附加参数

    今天在项目运行过程中,一直报一个org.hibernate.exception.GenericJDBCException: could not insert 异常,Root Cause是IBM  DB ...

  6. httpclient请求接口,上传文件附加参数(.net core)

    /// <summary> /// 上传文件 - 武汉站点 /// </summary> [HttpPost] public IActionResult UploadWH(Re ...

  7. 关于thinkphp5下URL附加参数,无法获取到(?参数)

    nginx 配置问题: 修改配置后:

  8. php中iconv函数的一个小bug--转载

    iconv转换字符集很好用,但是有时候你会发现iconv转换的时候会返回false或者空字符串,严格说来这算不上是iconv的问题,这其实是字符集的问题,但是实际编码中应该算是iconv的bug了. ...

  9. c# 调试模式下Swaggerf附加接口参数

    c# 调试模式下Swaggerf附加接口参数,如:每个接口Header中附加参数appId 1.新增过滤器: public class GlobalHttpHeaderFilter : IOperat ...

随机推荐

  1. checkbox操作判断 Jquery选择器

    function checkAll(d){ console.log(d); console.log(d.checked); //注意 这里是d不是$(d) 不是jQuery对象 if(d.checke ...

  2. MySQL索引管理及执行计划

    一.索引介绍 二.explain详解 三.建立索引的原则(规范)

  3. 无法将从VSS中的解决方案添加到TFS的源代码管理器中

    VSS是一种非常有用的项目文件管理工具,百度百科的解释是:VSS 的全称为 Visual Source Safe .作为 Microsoft Visual Studio 的一名成员,它主要任务就是负责 ...

  4. ajax获得后台传来的一个json值,在js中获得其中的属性值

    首先 ajax的dataType需要设置为json, 默认的text获取属性值在jquery3.2.1中尝试不成功 获得属性值的方式: 类似数组,键值对的方式 下面例子: 设置dataType为jso ...

  5. Java第一次实训

    package com.wsy.work; public class JudgeNumber { public static void main(String[] args) { int a = 5; ...

  6. centos7优化启动项,关闭一些不必要开启的服务

    CentOS7已不再使用chkconfig 管理启动项 使用 systemctl list-unit-files 可以查看启动项 systemctl list-unit-files | grep en ...

  7. How to convert mkv to mp4 lossless

    ffmpeg -i example.mkv -vcodec copy -acodec copy example.mp4

  8. 使用binlog,实现MySQL数据恢复

    mysql的binlog日志,用于记录数据库的增.删.改等修改操作,默认处于关闭状态.使用binlog实现数据恢复的条件为 1.binlog日志功能已开启 2.若binlog在数据库创建一段时候后开启 ...

  9. MySQL中表复制:create table like 与 create table as select

    CREATE TABLE A LIKE B 此种方式在将表B复制到A时候会将表B完整的字段结构和索引复制到表A中来. CREATE TABLE A AS SELECT x,x,x,xx FROM B ...

  10. Django+Xadmin打造在线教育系统(六)

    讲师相关功能实现 拷贝并修改teacher-list.html和teacher-detail.html, 继承base模板 # 讲师列表 path('teacher_list/', TeacherLi ...