Heim > Artikel > Backend-Entwicklung > php 生成图片。汉语显示乱码
php 生成图片。中文显示乱码
php 生成图片的中文部分。。变成乱码。。该怎么解决。。?
以下我是我的代码
字体已经拷贝到我的跟目录了:
header("Content-type: image/png");
$height=200;
$width=200;
$im=@imagecreate($width,$height) or die("Cannot Initialize new GD image stream");
//颜色设置
$background_color = imagecolorallocate($im, 255, 255, 255);//背景颜色
$lin_color = imagecolorallocate($im, 209, 124, 2);//线条颜色
$text_color= imagecolorallocate($im, 209, 124, 2);//文字颜色
//画图
imagefill($im,0,0,$background_color);//填充背景
//5条横线
imageline($im, 0, 0, $width, 0, $lin_color);
imageline($im, 0, 199, 199, 199, $lin_color);
imageline($im, 0, 50, $width, 50, $lin_color);
imageline($im, 0, 100, $width, 100, $lin_color);
imageline($im, 0, 150, $width, 150, $lin_color);
//5条竖线
imageline($im, 0, 0, 0, $height, $lin_color);
imageline($im, 199, 0, 199, 199, $lin_color);
imageline($im, 50, 0, 50, $height, $lin_color);
imageline($im, 100, 0, 100, $height, $lin_color);
imageline($im, 150, 0, 150, $height, $lin_color);
//输入文字
$str=iconv("Gb2312","UTF-8","中文");
$font = 'arial.ttf';
ImageTTFText($im, 13, 0, 10,10, $text_color, $font,$str);
//输出图像
imagepng($im);
//清理
imagedestroy($im);
?>
------解决方案--------------------
<br> <?php <br /> // Set the content-type <br> header("Content-type: image/png"); <br> <br> // Create the image <br> $im = imagecreatetruecolor(400, 30); <br> <br> // Create some colors <br> $white = imagecolorallocate($im, 255, 255, 255); <br> $grey = imagecolorallocate($im, 128, 128, 128); <br> $black = imagecolorallocate($im, 0, 0, 0); <br> imagefilledrectangle($im, 0, 0, 399, 29, $white); <br> <br> // The text to draw <br> $text = '方正卡通简体...'; <br> // Replace path by your own font path <br> $font = '方正卡通简体.ttf'; <br> $text = iconv('gb2312','utf-8',$text);#[color=#FF0000]Attention[/color] <br> // Add some shadow to the text <br> imagettftext($im, 20, 0, 11, 21, $grey, $font, $text); <br> <br> // Add the text <br> imagettftext($im, 20, 0, 10, 20, $black, $font, $text); <br> <br> // Using imagepng() results in clearer text compared with imagejpeg() <br> imagepng($im); <br> imagedestroy($im); <br> ?> <br> <br> <br>