Saber 酱的抱枕

Fly me to the moon

05/22
2016
学习

php使用iconv转换编码时忽略错误字符的办法

我在做pixiv图片下载器的时候,需要用php在硬盘上建立文件夹。有些文件夹的名字含有中文,那就需要转换为gbk编码,不然出来是乱码。

之前我是这样转换的:

iconv('utf-8', 'gbk', "【20周年♡】魔卡少女樱特辑");

但有时候会遇到问题,例如上面“周年”后面的心,在gbk里面没有,转换的时候会出错。一旦出错,这条语句就停止执行了,我们只能得到前半截“【20周年”,后面什么都没了。

今天这个现象又发生了,上网查了查,原来加上ignore参数就可以忽略出错的字符,继续转换。

iconv('utf-8', 'gbk//ignore', "【20周年♡】魔卡少女樱特辑");

现在,这个心会被忽略掉,我们能得到较为满意的结果“【20周年】魔卡少女樱特辑”。

另外还有个参数//TRANSLIT是遇到错误时替换为相近的字符,但是这个效果很难说啊,我是没有用。

php使用iconv转换编码时忽略错误字符的办法