zoukankan      html  css  js  c++  java
  • 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

     

  • 相关阅读:
    mybatis
    Hello mybatis
    linux各种终端类型的区别和概念
    页面对象的定位
    laravel 操作 redis
    Python应用与实践
    Mysql与Oracle区别
    PHP 中 call_user_func 函数 和 call_user_func_array 函数的区别
    php依赖注入
    Linux/Unix 怎样找出并删除某一时间点的文件
  • 原文地址:https://www.cnblogs.com/personnel/p/4585003.html
Copyright © 2011-2022 走看看