在写代码过程中,经常遇到编码问题而引发的乱码。其实解决编码问题非常简单,只要使用一种编码即可,一般来说,采用万国码——UTF-8是最好的选择。
这里说的编码是文字编码和文件存储的编码,当然,不得不提到系统的编码的差异性:
系统 编码 字符结尾
Windows GBK \r\n
*nix UTF-8 \n
所以在处理特殊字符的时候要特别注意。
常见的编码有GBK、UTF-8等等,函数使用上一般采用两种:
string mb_convert_encoding (string $str , string $to_encoding [, mixed $from_encoding = mb_internal_encoding() ]) //将 string 类型 str 的字符编码从可选的 from_encoding 转换到 to_encoding。
string iconv (string $in_charset , string $out_charset , string $str) //将字符串 str 从 in_charset 转换编码到 out_charset。
案例:Windows系统,架设了一个WAMP服务器,将如下脚本另存为一个UTF-8编码的php文件,即可通过浏览器查看无乱码的php目录里的文件;如果不是用mb_convert_encoding转码,将直接导致输出乱码(Windows作为服务器)。
复制代码 代码如下:
<?php
function getDir($dir){
static $string = '';
if(is_file($dir)){
$string.= $dir;
}else{
$oDir = @opendir($dir);
while($fileName = readdir($oDir)){
if($fileName!='.' && $fileName!='..'){
if(is_file($dir.'https://www.jb51.net/'.$fileName)){
$string.=$fileName."\n";
}elseif(is_dir($dir.'https://www.jb51.net/'.$fileName)){
$string.= $dir.'https://www.jb51.net/'.$fileName.'https://www.jb51.net/'."\n";
getDir($dir.'https://www.jb51.net/'.$fileName);
}
}
}
}
return $string;
}
echo mb_convert_encoding( getDir('php'),'utf8', 'gbk' );
?>
四、总结
编码是数据的处理的基础,所以在PHP的编程开发过程中是相当重要的。对于PHP的处理方法,应用在编程中还需要数量掌握,特别有些相似函数要如何区分。转载请注明出处(jb51.net)
您可能感兴趣的文章: