「许盖功」是指BIG5码设计时没有把美国标准资讯交换码ASCII(American Standard Code for Information Interchange)的控制码排除在外,而ASCII是以byte为单位,又1 byte=8 bits,所以ASCII最多可以编2^8=256个字元,对于只有26个字母的英文语系国家来说已绰绰有余,但对于有几万字的中文绝对不够,因此必须用两个byte来代表一个中文字,如"中"字的编码即是"A4A4"。然而,BIG5码设计时为了避免与ASCII冲突,每个中文字的第一个byte仅使用ASCII里的高字元(129-255),但在第二个byte却用到了部分低字元(1-128),这正是BIG5码在日后应用上造成极大不便,[许盖功]这三个字正是这些出问题的字之一
复制程式
<?php
function sql_slashes($sqlstr)
{
$sqlstr=sql_prefix(myAddSlashes($sqlstr));
return $sqlstr;
}
//关于magic_quotes_gpc的两个跳脱字处理function
function sql_prefix($sqlstr)
{
$res_st="";
if(get_magic_quotes_gpc())
$res_str=stripslashes($sqlstr);
else
$res_str=$sqlstr;
$res_str=mysql_escape_string($res_str);
return $res_str;
}
function myAddSlashes($st) {
if (get_magic_quotes_gpc()) {
return $st;
} else {
return AddSlashes($st);
}
}
?>