phppost亂碼
發布時間: 2023-03-29 02:48:39
① php $_POST提交中文亂碼
header("Content-Type:text/html;charset=utf8");
修改為
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">';
看看
② php資料庫中文亂碼是怎麼造成的
確保三碼合一就可以了..
第一個是資料庫的字元集
第二個就是存進去的時候字元集
第三個就是顯示的時候的字元集
這三個都有可能造成亂碼;
第一個 舉例是:如果你插入的時候用的是GB2312 ,但你表中的default charset是utf8 那麼,就有可能亂碼了.
第二種情況就是你插入正確 但你查詢的時候以UTF8查詢出來,但你在HTML頁面里設置編碼如果非UTF8那麼也有可能造成亂碼.
③ php上傳圖片名稱亂碼
中文文件名需要轉碼成gbk:
functionsaveFile($fileArr,$post_get){
$realFileName=$fileArr["name"];//上傳文件的文件名
$ext_file_name=strrchr($realFileName,'.')?strrchr($realFileName,'.'):"";//獲取擴展名
$type=$fileArr["type"];//上傳文件的類型
$size=$fileArr["size"];//上傳文件的大小
$tmp_name=$fileArr["tmp_name"];//上傳文件的臨時存放路徑
$web_root=$_SERVER['DOCUMENT_ROOT'];
//$guidFilePath=$web_root.stripslashes($post_get['tagPath']).'/'.creat_guid(0).$ext_file_name;
$FileUrl=stripslashes($post_get['tagPath']).'/'.$realFileName.$ext_file_name;
$FilePath=$web_root.$guidFileUrl;
$FilePathBK=iconv("utf-8","gbk",$dFilePath);
$md5=strtoupper(md5_file($tmp_name));
try{
if(move_uploaded_file($tmp_name,$FilePathBK)){
returnarray("success"=>true,'msg'=>"","realFileName"=>$realFileName,"guidFilePath"=>$guidFilePath,'md5'=>$md5,"fileSize"=>$size);
}else{
returnarray("success"=>true,'msg'=>$realFileName.'isnotavaliploadfile!',"realFileName"=>$realFileName,"guidFilePath"=>$guidFilePath,"fileSize"=>$size);
}
}catch(Exception$e){
returnarray("success"=>false,'msg'=>$e->getMessage(),"realFileName"=>$realFileName,"guidFilePath"=>$guidFilePath,"fileSize"=>$size);
}
}
④ php post傳值亂碼問題
方法:
1, 全部使用utf-8;
2, 文件存儲為utf-8 without bom頭;
3, 資料庫使用utf-8 general ci;
4, url中的中文要rawurlencode;
5, 解析時不要decode;
⑤ php設置成utf-8還是亂碼了怎麼辦
有時後php代碼里邊設置了「header("Content-type:
text/html;
charset=utf-8");」不一定會管用,因為有時文件本身格式就是錯誤的,你先把代碼復制到一個txt文件里邊,然後用代碼工具對php文件進行轉碼成utf-8格式(這時你就會發現里邊的代碼亂碼了,由其是中文和特殊字元),再把txt里邊的代碼復制覆蓋原來的php文件內容,然後保存即可,例如用Notepad++
工具
可以對文件本身進行轉碼
熱點內容