$textcolor = imagecolorallocate($img, 255, 0, 0); //ウォーターマークのフォントの色を設定します
$font = 'c:/windows/fonts/simhei.ttf' // フォントを定義します
;
$text = iconv("GB2312", "UTF-8", $waterImageUrl); //中国語のテキストを UTF8 に変換します
Imagettftext($img, 20, 10, 50, 40, $textcolor, $font, $text);//画像にテキストを書き込みます
$this->outputImage($img, $this->getExtendsName($imageUrl), $imageUrl);
imagedestroy($img);///画像を破棄します
, さて、この時点でまだこの方法を使っていると文字化けしてしまいますが、なぜ既にUTF-8になっているのに変換するのでしょうか?このとき、3 行目を削除して、imagettftext メソッドの $text を $waterImageUrl に直接変更することもできます。もちろん、値を渡すページが別のエンコーディングである場合もあります。 UTF-8 の代わりに、別の記事があると思います。そのため、PHP を学習している友人には、Web サイトの各ページのエンコーディングが一貫していることを確認するようにアドバイスします。そうすることで、問題を解決するのがはるかに簡単になります。 。
コードを投稿しましょう。知らない人もいると思いますが、www.2cto.com
$font = 'c:/windows/fonts/simhei.ttf' // フォントを定義します
;
//$text = iconv("UTF-8", "UTF-8", $waterImageUrl) //中国語のテキストを UTF8 に変換します
//実際には、前のindex.phpファイルでエンコーディングをUTF-8に設定しているため、ここで変換する必要がないことがわかります。
////$text = iconv("GB2312", "UTF-8", $waterImageUrl); と書くと文字化けします
$text = $waterImageUrl
;
Imagettftext($img, 20, 10, 50, 40, $textcolor, $font, $text);//画像にテキストを書き込みます
$this->outputImage($img, $this->getExtendsName($imageUrl), $imageUrl);
imagedestroy($img);///画像を破棄します
0+0+0+...=1 より抜粋
http://www.bkjia.com/PHPjc/478455.html