关于(NOTICE)iconv(): Detected an illegal character in input string无法转码解决方案

本文分享了在使用iconv进行文件名编码转换时遇到的问题及解决方案。作者在尝试将UTF-8编码转换为gb2312编码时,遭遇非法字符错误。通过研究,发现PHP内置的mb_convert_encoding函数更为稳定,适用于编码转换任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     今天遇到了一个坑,就是用iconv转文件名编码时出现(NOTICE)iconv(): Detected an illegal character in input string错误,我用iconv("UTF-8", "gb2312", $value)转换文字的格式编码,结果出现如下图:

     当时找问题真的是痛不欲生,压根就无法成功转换,感觉这个函数有bug,困惑了一上午。 然后中午就想,会不会有其它函可以数替换iconv,就在网上使劲找各种遇到的类似问题,最后看到一篇文章的思路有了启发,解决了这个问题。

PHP里自带一个内库,在php.ini里有这一句,#extension=php_mbstring.dll,把前边#号去掉,有mb_convert_encoding()函数,我用到的是3个参数,第一个是文件名,第二个是需要转换的编码,第三个是它的默认编码、这里有个auto说是不知道什么编码就自动检测,感觉不太准,最后就是你自己知道编码格式,我感觉这个函数比iconv()bug少,希望能帮到大家。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值