您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

“ file_exists”问题中的特殊字符(php)

“ file_exists”问题中的特殊字符(php)

什么是服务器操作系统?

如果是Windows,您将无法访问以UTF-8编码的文件名下的文件,因为PHP使用的C IO库的Windows实现将仅在系统代码页中显示。对于西欧安装,代码页为1252。您可以使用iconv将UTF-8字符串转换为cp1252:

$winfilename= iconv('utf-8', 'cp1252', $utffilename);

utf8_decode也可以使用,但是对于映射到cp1252中范围0x80-0x9F的Windows扩展字符,它将给出错误的结果。)

PHP和其他使用stdio的程序完全无法访问名称中包含系统代码页指令表之外的字符的文件(例如,在西方语言中为希腊语)。有一些脚本语言可以通过Win32 API使用本机Unicode文件名,但是PHP5并不是其中一种。

当然,当将文件部署在UTF-8编码的不同OS上时,不应使用上述步骤。(即现代Linux。)

如果您需要与PHP无缝地跨服务器兼容,则必须避免在文件名中使用非ASCII字符。抱歉。

php 2022/1/1 18:15:14 有529人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶