在開發時出現uft-8頁面中文驗證碼亂碼了,在baidu搜索發現了原因,下面有解決辦法有需要的朋友可以參考一下。
代碼如下 復制代碼
<?
session_start();
//生成隨機數
for($i=0;$i<4;$i++){
$rand.=dechex(rand(1,15));
}
$_SESSION['checkpic']=$rand;
$im=imagecreatetruecolor(100,30);//畫板,新建一個真彩色圖像
//設置顏色
$bg=imagecolorallocate($im,0,0,0);//紅,綠,藍 背景顏色
$te=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));//字體顏色
//畫線條
for($i=0;$i<3;$i++){
$te2=imagecolorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imageline($im,rand(0,100),0,rand(0,100),30,$te2);//坐標(x1,y1)到坐標(x2,y2)
}
//畫點
for($i=0;$i<200;$i++){
imagesetpixel($im,rand()%100,rand()%30,$te2);
}
//輸出中文
$str=iconv("gbk","utf-8","新年快樂!");//確定要繪制的中文文字
imagettftext($im,12,3,20,20,$te,'msyhbd.ttf','中文en');
//把字符串寫在圖像左上角
//imagestring($im,5,rand(0,50),rand(0,15),$rand,$te);
//輸出圖像
header("Content-type:image/jpeg");//文件類型
imagejpeg($im);
?>
分析原因與解決辦法
代碼如下 復制代碼$str=iconv("gbk","utf-8","新年快樂!");//確定要繪制的中文文字
imagettftext($im,12,3,20,20,$te,'msyhbd.ttf','中文en');
-->>
應該這樣的