如何用PHP的mb_string函数在Windows系统中正确处理中文字符?
- 内容介绍
- 文章标签
- 相关推荐
本文共计921个文字,预计阅读时间需要4分钟。
我们知道Windows(中文版)中,文件名和文件内容等编码都是GBK,而我们在开发过程中,IDE中的编码是UTF-8。如何将编码转换一致呢?
我们都知道windows中(当然是中文版),文件名和文件内容等编码都是gbk,而我们在开发过程中,IDE里的编码则是UTF-8,(这里不讨论为什么等等问题,只考虑怎么把编码转变成一样的)所以导致我写的UTF-8编码的正则模式字符串中的中文在gbk编码的文件中并不能正确匹配。
一开始,我并没有什么办法,试过把PHP脚本文件的编码也改成GBK,也可以用,但是想到这种方法太low了,所以找一找PHP中有没有函数可以满足我的需求。
这时,我想到了以前在处理windows中的文件名时用的函数iconv(),其函数原型如下:
stringiconv(string$in_charset,string$out_charset,string$str)
Performsacharactersetconversiononthestringstrfromin_charsettoout_charset.
我们常使用:
$out_charset='utf-8'; $fileName=iconv($fileName,$out_charset,'gbk');
来处理文件名,将文件名改从gbk改为UTF-8而内容不变。
本文共计921个文字,预计阅读时间需要4分钟。
我们知道Windows(中文版)中,文件名和文件内容等编码都是GBK,而我们在开发过程中,IDE中的编码是UTF-8。如何将编码转换一致呢?
我们都知道windows中(当然是中文版),文件名和文件内容等编码都是gbk,而我们在开发过程中,IDE里的编码则是UTF-8,(这里不讨论为什么等等问题,只考虑怎么把编码转变成一样的)所以导致我写的UTF-8编码的正则模式字符串中的中文在gbk编码的文件中并不能正确匹配。
一开始,我并没有什么办法,试过把PHP脚本文件的编码也改成GBK,也可以用,但是想到这种方法太low了,所以找一找PHP中有没有函数可以满足我的需求。
这时,我想到了以前在处理windows中的文件名时用的函数iconv(),其函数原型如下:
stringiconv(string$in_charset,string$out_charset,string$str)
Performsacharactersetconversiononthestringstrfromin_charsettoout_charset.
我们常使用:
$out_charset='utf-8'; $fileName=iconv($fileName,$out_charset,'gbk');
来处理文件名,将文件名改从gbk改为UTF-8而内容不变。

