关于windows下,PHP创建目录、文档名时中文乱码问题
来源:互联网 发布:淘宝退货流程图 编辑:程序博客网 时间:2024/06/11 12:19
问题
在windows下,PHP调用mkdir()、file_put_contents()、fopen()函数创建带有中文的目录或文档名时,出现乱码。
原因
经过查阅资料,这跟系统字符集有关系。
windows(简体中文),默认字符集是:gbk
windows(繁体中文),默认字符集是:big5
linux,默认字符集是:utf-8
解决
使用iconv或mb_convert_encoding函数转换字符的编码。
//将字符串 str 从 in_charset 转换编码到 out_charset。string iconv ( string $in_charset , string $out_charset , string $str )//将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。string mb_convert_encoding ( string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ] )
根据系统设定转换编码,方法如下:
<?php/** * 转换字符编码 * @param $string * @return string */function convertEncoding($string){ //根据系统进行配置 $encode = stristr(PHP_OS, 'WIN') ? 'GBK' : 'UTF-8'; $string = iconv('UTF-8', $encode, $string); //$string = mb_convert_encoding($string, $encode, 'UTF-8'); return $string;}
乱码示例
<?php#示例1$dir = __DIR__ . '/中英文目录Test1';mkdir($dir); //目录名:涓嫳鏂囩洰褰昑est1#示例2$fileName = __DIR__ . '/中英文档名Test2.txt';file_put_contents($fileName, '文件内容Test2');//文件名:涓嫳鏂囨。鍚峊est2.txt//文件内容:文件内容Test2#示例3$fileName = __DIR__ . '/中英文档名Test3.txt';$fp = fopen($fileName, 'w');fwrite($fp, '文件内容Test3');fclose($fp);//文件名:涓嫳鏂囨。鍚峊est3.txt//文件内容:文件内容Test3?>
解决示例
<?php#示例1$dir = __DIR__ . '/中英文目录Test1';$dir = convertEncoding($dir);mkdir($dir); //目录名:中英文目录Test1#示例2$fileName = __DIR__ . '/中英文档名Test2.txt';$fileName = convertEncoding($fileName);file_put_contents($fileName, '文件内容Test2');//文件名:中英文档名Test2.txt//文件内容:文件内容Test2#示例3$fileName = __DIR__ . '/中英文档名Test3.txt';$fileName = convertEncoding($fileName);$fp = fopen($fileName, 'w');fwrite($fp, '文件内容Test3');fclose($fp);//文件名:中英文档名Test3.txt//文件内容:文件内容Test3/** * 转换字符编码 * @param $string * @return string */function convertEncoding($string){ //根据系统进行配置 $encode = stristr(PHP_OS, 'WIN') ? 'GBK' : 'UTF-8'; $string = iconv('UTF-8', $encode, $string); //$string = mb_convert_encoding($string, $encode, 'UTF-8'); return $string;}
阅读全文
1 0
- 关于windows下,PHP创建目录、文档名时中文乱码问题
- 关于PHP fopen函数在windows系统上创建中文命名的文档时乱码的问题
- 关于解压文档名中文出现乱码解决方案
- windows下创建目录,备份文档脚本
- 解决在windows目录下的文件到ubuntu系统下出现的中文乱码问题
- Ubuntu 下html文档、php访问mysql数据库,关于中文乱码的解决方案。
- 关于读取php中文文件名乱码问题
- php 关于fgetcsv中文乱码问题
- 关于php中json_encode中文乱码问题
- 解决Windows下GVIM中文乱码问题
- 解决Windows下python中文乱码问题
- windows下mysql中文乱码问题
- 解决windows下mysql中文 乱码问题
- ubuntu下解决windows文档显示中文乱码
- linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决
- linux下将中文文件名文件cp到windows目录下后文件名乱码问题的解决
- php遍历windows下中文目录下的所有文件名
- php中文乱码问题
- Unicode以及.rc的一点问题
- 天机测试单板(Tianjic2)调试总结
- 配置Redhat 7 使用CentOS的YUM源
- SpringMVC核心~~持续更新~
- <a>标签跳外部链接
- 关于windows下,PHP创建目录、文档名时中文乱码问题
- Java中的Comparable与Comparator
- 乐观锁和悲观锁的区别(最全面的分析)
- JDK安装教程
- 蒋勋说宋词
- html相关3
- 微信公众号开发(五)个性化菜单
- VBA遍历文件夹并正则表达式匹配文本所在位置
- 关于错误:Uncaught Error: Bootstrap's JavaScript requires jQuery bootstrap.js:8 at bootstrap.js:8