PHP - 用日文字符重命名文件

时间:2015-08-09 22:43:46

标签: php php-5.4

为什么以下代码错误地将1.txt重命名为一.txt.txt而不是一.txt

rename('1.txt','一.txt');

2 个答案:

答案 0 :(得分:1)

主要是因为编码不匹配。您的脚本应使用正确的编码,此编码必须匹配文件系统编码。如果其中一个不匹配(通常是脚本),那么您将获得所描述的效果。确保您使用相同的编码或用数字实体替换您的“内联”名称(目标文件名在这里看作是“-.txt”,其中“ - ”是长划线)。

答案 1 :(得分:1)

啊,混合编码的喜悦啊。错误可能在任何地方,文件系统,网络编码,shell,编辑器,文件管理器中,甚至终端都没有正确解释字符,...

请确保每个人都说同一个字符集。这通常通过运行正确的环境变量来修复。请注意PHP并没有真正对文件名的字符做任何事情,所以只要你不使用字符串函数来操作字符串(不幸的是,它仍然只与单字节字符串兼容)你不应该从PHP中遇到很多麻烦。