ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP Tutorial で画像に電子透かしを入れると中国語が文字化けする問題を解決する方法

PHP_PHP Tutorial で画像に電子透かしを入れると中国語が文字化けする問題を解決する方法

WBOY
WBOYオリジナル
2016-07-13 17:48:121065ブラウズ

$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);///画像を破棄します

多くの場合、問題は次のように解決されますが、次のような特殊なケースがあることを忘れないでください。つまり、次のような PHP ページのエンコーディングを設定します。 header( "Content-Type: text/html; charset=UTF -8 ");

, さて、この時点でまだこの方法を使っていると文字化けしてしまいますが、なぜ既にUTF-8になっているのに変換するのでしょうか?このとき、3 行目を削除して、imagettftext メソッドの $text を $waterImageUrl に直接変更することもできます。もちろん、値を渡すページが別のエンコーディングである場合もあります。 UTF-8 の代わりに、別の記事があると思います。そのため、PHP を学習している友人には、Web サイトの各ページのエンコーディングが一貫していることを確認するようにアドバイスします。そうすることで、問題を解決するのがはるかに簡単になります。 。
コードを投稿しましょう。知らない人もいると思いますが、www.2cto.com

$textcolor = imagecolorallocate($img, 255, 0, 0); //ウォーターマークのフォントの色を設定します

$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

本当http://www.bkjia.com/PHPjc/478455.html技術記事 $textcolor = imagecolorallocate($img, 255, 0, 0); //ウォーターマークのフォントの色を設定します $font = c:/windows/fonts/simhei.ttf; //フォントを定義します $text = iconv(GB2312, UTF- 8, $waterImageUrl) //ヒットします...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。