ホームページ  >  記事  >  バックエンド開発  >  PHPで画像を出力すると中国語が文字化けして表示される問題の解決方法

PHPで画像を出力すると中国語が文字化けして表示される問題の解決方法

藏色散人
藏色散人オリジナル
2021-10-25 09:23:033446ブラウズ

php が画像を出力し、中国語の文字化けを表示する場合の解決策: 1. PHP コードの前に ob_clean() を追加してバッファをクリアします; 2. UTF-8 エンコードを設定します。

PHPで画像を出力すると中国語が文字化けして表示される問題の解決方法

この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

方法php出力画像の問題を解決 そして中国語文字化けの問題が表示される?

phpはGD画像ライブラリを利用して出力画像と文字化け問題と画像上の漢字文字化け問題の解決方法を描画します

ソースコード:

<html>
 <head>
  <title>PHP 图像测试</title>
 </head>
 <body>
 <?php 
        #创建背景图像
$im = @imagecreate(500,500) or die("没有安装GD图像库<br>");
#设置背景颜色
        $bgCol=imagecolorallocate($im,255,0,0);
#设置字体颜色
$texCol=imagecolorallocate($im,255,255,0);
$motto = "I love my baby! 我家宝贝聪明可爱漂亮";
        $motto = iconv("gb2312", "utf-8", $motto);
#在背景图像上输入文字
imagestring($im,3,5,5,$motto,$texCol);
#输出图像
header("Content-Type: image/png");
imagepng($im);
#清除所有资源
imagedestroy($im);
 ?>
</body>
</html>

実行後に得られる結果:

 <html>
 <head>
  <title>PHP ͼ������</title>
 </head>
 <body>
 �PNG


IHDR���M�PLTE���lۜ�IDATx���1
�0�ᔀ]*��W�:/�ر��C����ɥ��1N���?^������M��c��N���>t1�+�w�1
�Z۷�+��<��7���y�ݏ�.�}�T�ݧ_��?�/o�m��IEND�B`�</body>
</html>

(1) 解決策: $im = @imagecreate(500,500) または die("GD イメージ ライブラリがインストールされていません
の前に ob_clean(); を追加します;"); 最初にバッファをクリアします。写真は表示できますが、写真上の文字は英語と数字しか表示できず、漢字は文字化けします。

(2) imagestring のデフォルトの英語エンコードは UTF-8 のみをサポートしているため、中国語の文字は文字化けします。

imagettftext($im,10,30,0,100,$texCol,"c:/windows/fonts/simhei.ttf",$motto);

"c:/windows/fonts/simhei.ttf" を使用する必要があります。 、システムは自動的に黒色のボディを備えています。

推奨学習: 「PHP ビデオ チュートリアル

以上がPHPで画像を出力すると中国語が文字化けして表示される問題の解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。