在编辑php时常遇到中文乱码问题。在此将 php在处理中文时,视为 “危险字符串”
避免 中文乱码的方法:
1. 将中文字符进行转码。通过: iconv 或 mb_convert_encoding 两个方法中的一个对字符串进行编码处理。
2. 将中文字符串进行替换,将中文替换为其它字符串:例如以下方法,将中文替换为 下划线 "_"
function replace_dangerous_char($filename, $strict = 'loose')
{
file_put_contents("d:/debug/filename1.txt",$filename);
$filename = ereg_replace("\.+$", "", substr(strtr(ereg_replace(
"[^!-~\x80-\xFF]", "_", trim($filename)), '\/:*?"<>|\'',
/* Keep C1 controls for UTF-8 streams */ '-----_---_'), 0, 250));
if ($strict != 'strict') return $filename;
file_put_contents("d:/debug/filename2.txt",$filename);
return ereg_replace("[^!-~]", "x", $filename);
}
--------------
function replace_dangerous_char($string)
{
$search[]="/" ; $replace[]="-";
$search[]="\|"; $replace[]="-";
$search[]="\""; $replace[]=" ";
foreach($search as $key=>$char )
{
$string = str_replace($char, $replace[$key], $string);
}
return $string;
}