开始是这样用的
$str = iconv('UTF-8', 'GB2312', unescape(isset($_GET['str'])? $_GET['str']:''));
上线后报一堆这样的错:iconv() : Detected an illegal character in input string
考虑到GB2312字符集比较小,换个大的吧,于是改成GBK:
$str = iconv('UTF-8', 'GBK', unescape(isset($_GET['str'])? $_GET['str']:''));
上线后还是报同样的错!
再认真读手册,发现有这么一段:
If you append the string //TRANSLIT to out_charset transliteration is activated. This means that when a character can't be represented in the target charset, it can be approximated through one or several similarly looking characters. If you append the string //IGNORE, characters that cannot be represented in the target charset are silently discarded. Otherwise, str is cut from the first illegal character.
于是改成:
$str = iconv('UTF-8', 'GBK//IGNORE', unescape(isset($_GET['str'])? $_GET['str']:''));
本地测试//IGNORE能忽略掉它不认识的字接着往下转,并且不报错,而//TRANSLIT是截掉它不认识的字及其后面的内容,并且报错。//IGNORE是我需要的。
现在等待上线看结果(这样不是好的做法,继续琢磨手册,上网搜搜看),呵呵。。。
在网上找到下面这篇文章,发现mb_convert_encoding也可以,但效率比iconv差。
转换字符串编码iconv与mb_convert_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)
用法:
string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] )
需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉
string iconv ( string in_charset, string out_charset, string str )
注意:
第二个参数,除了可以指定要转化到的编码以外,还可以增加两个后缀://TRANSLIT 和 //IGNORE,
其中:
//TRANSLIT 会自动将不能直接转化的字符变成一个或多个近似的字符,
//IGNORE 会忽略掉不能转化的字符,而默认效果是从第一个非法字符截断。
Returns the converted string or FALSE on failure.
使用:
1. 发现iconv在转换字符"-"到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。不管怎么样,这个"-"都无法转换成功,无法输出。另外mb_convert_encoding没有这个bug.
2. mb_convert_encoding 可以指定多种输入编码,它会根据内容自动识别,但是执行效率比iconv差太多;如:$str = mb_convert_encoding($str,"euc-jp","ASCII,JIS,EUC-JP,SJIS,UTF- 8");“ASCII,JIS,EUC-JP,SJIS,UTF-8”的顺序不同效果也有差异
3. 一般情况下用 iconv,只有当遇到无法确定原编码是何种编码,或者iconv转化后无法正常显示时才用mb_convert_encoding 函数
from_encoding is specified by character code name before conversion. it can be array or string - comma separated enumerated list. If it is not specified, the internal encoding will be used.
$str = mb_convert_encoding($str, "UCS-2LE", "JIS, eucjp-win, sjis-win");
$str = mb_convert_encoding($str, "EUC-JP', "auto");
例子:
$content = iconv("GBK", "UTF-8", $content);
$content = mb_convert_encoding($content, "UTF-8", "GBK");
相关推荐:
2025百度收录优化:提升网站排名,助力企业数字化转型,第一ai做
seo网页优化什么意思,seo网站优化必知的10个问答,问吧,【解决】百度不知道 ,ai识别点读机
ChatGPT破解:人工智能的无限潜力与破解秘笈,意识变ai
ChatGPT宕机两小时,OpenAI紧急修复,用户期待AI恢复正常服务,oppo小布ai
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
AI免费写作一键生成,效率与创意的完美结合
SEO这种营销方式,改变你网站流量的秘密武器,佛山网站设计建设
ChatGPT打不开网页?看完这篇你就懂了!,国内ai写作安卓软件
SEO搜索关键词是什么意思?让你轻松网站流量的秘密!,ai颜色不对
SEO优化关键词品牌:如何通过精准的关键词提升品牌价值,ai免费智能写作论文
为什么seo这么难,seo难嘛 ,ai宁中则
SEO中权重是什么意思?让你迅速网站排名的核心秘密!,长颈鹿智能AI点读机
360AI写作怎样?助力创作的新风尚,ai到访
seo都有什么问题,seo都有什么问题和答案 ,ai凯旋公主下载
怎样使用AI写文章:释放创作潜能,提升写作效率
SEO立刻:快速提升网站排名,带你走在搜索引擎前沿,网站建设怎么推广好做
seo需要什么器械,seo需要什么器械才能做 ,长续航ai纯电汽车
SEO小白必看!从零起步SEO的秘诀,轻松提升网站排名,南京网站运营优化平台
好用的AI写作软件,让创作更高效
SEO无限:如何利用SEO技术实现网站流量爆发?,网站建设总监
AI智能时代的到来:如何利用人工智能推动生活与商业创新,ai相册下载
SEO在线服务-让您的网站快速跃升至搜索引擎前列,江西小红书营销推广案例
ChatGPT维护-智能时代的数字助手,如何让你的工作更高效,ai智能救援
seo站内关键词优化,seo关键词优化经验技巧 ,ai 优点
seo网络推广是什么,seo网络推广是什么意思 ,ai哪里注音
SEO深度解析:如何通过深度优化提升网站排名,带来流量和转化,咸宁网站建设大概费用
SEO客服:如何提升客户体验与业务转化的双赢策略,鄂州网站建设公司教程
SEO子-为你的网站注入流量的秘密武器,麻城网站网址优化
SEO快速提升SEO排名的有效策略:让你的网页飞跃搜索引擎,ai调色食物
ChatGLM不能搜索网页内容,你真的了解它的局限性吗?,ai修复情侣
SEO优化如何提升网站排名,驾驭搜索引擎流量,三亚网站推广方法
GPT人工智能-让未来触手可及的智慧之光,ai头花写真
OpenAI账号申诉怎么办?全方位解析解决方案,ai写作免费公众号下载
自动写文章AI:高效创作工具,开启写作新纪元
GPT怎么收费?揭秘AI技术的定价与价值,ai报考高考
AI公众号文章生成,轻松打造爆款内容
ChatGPT错误处理与异常情况解决方法:让你的AI助手更加智能与可靠,智能ai鼠标ai智能语音
SEO走动:提升网站流量的关键一步,SEO数据监控宝宝推荐
SEO与SEM:谁才是提升网站流量的王者?,Ai中字体如何变形立体
文章写作AI:让创作更高效、精准的智能助手
什么是seo网络推广,seo网络推广技术 ,ai写真官方
GPT-3.5可以免费使用吗?AI未来的无限可能,ai烧猪
智能AI写文章:高效创作新风尚
什么是SEO金融,seo是做什么的 ,ai中转程序
SEO新站优化指南:快速提升排名的必备技巧,海珠网站推广哪家有名
亚马逊的seo是什么阿,亚马逊seo项目 ,中考用ai写作会判0分吗
SEO技巧提升网站流量:打造高效网站的关键策略,Ai测脸相
360ai答题-赋能教育,开启智能学习新纪元,ai 果汁
AI写作的崛起-“只能AI写作”背后的巨大潜力,舞狮摄影ai
SEO建议:如何通过优化提升网站流量,赢得市场竞争,自媒体网站免费推广平台