「許蓋功」是指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);
}
}
?>