首頁 >php教程 >php手册 >php utf8页面验证码图片中文乱码

php utf8页面验证码图片中文乱码

WBOY
WBOY原創
2016-06-13 09:55:321040瀏覽

在开发时出现uft-8页面中文验证码乱码了,在baidu搜索发现了原因,下面有解决办法有需要的朋友可以参考一下。

 

 代码如下 复制代码


session_start();


//生成随机数
for($i=0;$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 $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 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');

-->>
应该这样的

 代码如下 复制代码
$str=iconv("gbk","utf-8","新年快乐!");//确定要绘制的中文文字
imagettftext($im,12,3,20,20,$te,'msyhbd.ttf',$str);
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn