在 Windows 10 64、PHP 5.6 下重命名中文名文件,提示错误的解决

1、重命名某个目录中的文件名,其代码,如图1

重命名某个目录中的文件名

图1

2、报错:rename(E:/wwwroot/avatar/BEIJI/侯森.jpg,E:/wwwroot/avatar/BEIJI/378477.jpg): ϵͳ�Ҳ���ָ�����ļ��� (code: 2),如图2

报错:rename(E:/wwwroot/avatar/BEIJI/侯森.jpg,E:/wwwroot/avatar/BEIJI/378477.jpg): ϵͳ�Ҳ���ָ�����ļ��� (code: 2)

图2

3、使用 file_exists 函数,检查文件是否存在,如果存在,打印1,如果不存在,打印0,如图3

使用 file_exists 函数,检查文件是否存在,如果存在,打印1,如果不存在,打印0

图3

4、打印结果为0,表示检查文件的结果为不存在,如图4

打印结果为0,表示检查文件的结果为不存在

图4

5、打开网址:http://php.net/manual/zh/function.rename.php ,发现一段提示:,用以解决此类问题,如图5
翻译:在windows(XP,vista,7 …)http://fr.wikipedia.org/wiki/Windows-1252“,如果你的文件名包含口音,它基本上不起作用,所以使用iconv函数从 utf-8到cp1252如下:

在windows(XP,vista,7 ...)http://fr.wikipedia.org/wiki/Windows-1252“,如果你的文件名包含口音,它基本上不起作用,所以使用iconv函数从 utf-8到cp1252如下:

图5

6、iconv — 字符串按要求的字符编码来转换,将字符串 E:/wwwroot/avatar/BEIJI/侯森.jpg 从 UTF-8 转换编码到 GB2312,代码,如图6

iconv — 字符串按要求的字符编码来转换,将字符串 E:/wwwroot/avatar/BEIJI/侯森.jpg 从 UTF-8 转换编码到 GB2312

图6

7、打印结果为1,表示检查文件的结果为存在,如图7

打印结果为1,表示检查文件的结果为存在

图7

8、最终实现代码,如图8

最终实现代码

图8

9、目录 E:/wwwroot/avatar/BEIJI 中的文件,如图9

目录 E:/wwwroot/avatar/BEIJI 中的文件

图9

10、运行脚本,目录 E:/wwwroot/avatar/BEIJI 中的文件,已经重命名成功,如图10

运行脚本,目录 E:/wwwroot/avatar/BEIJI 中的文件,已经重命名成功

图10

11、运行脚本,报错:iconv(): Detected an illegal character in input string,如图11
翻译:iconv():检测到输入字符串中存在非法字符

运行脚本,报错:iconv(): Detected an illegal character in input string

图11

12、打印文件名,发现非法字符应该为 吴䶮,如图12

打印文件名,发现非法字符应该为 吴䶮

图12

13、将 GB2312 修改为 GB18030(如果修改为GBK的话,仍然报错,GB18030字符集包含GBK字符集和中日韩(CJK) Ext-A ),如图13

将 GB2312 修改为 GB18030(如果修改为GBK的话,仍然报错,GB18030字符集包含GBK字符集和中日韩(CJK) Ext-A )

图13

原创文章,作者:carmelaweatherly,如若转载,请注明出处:https://blog.ytso.com/180606.html

(0)
上一篇 2021年10月31日
下一篇 2021年10月31日

相关推荐

发表回复

登录后才能评论