2
setlocale(LC_MONETARY, 'en_GB.UTF-8');
imagestring( $my_img, 4, $colC, $row1, money_format('%(#5n', $rates[0][0]), $text_colour );

...
...
...

header( "Content-type: image/png" );
imagepng( $my_img );
imagecolordeallocate( $line_colour );
imagecolordeallocate( $text_colour );
imagecolordeallocate( $background );
imagedestroy( $my_img );

すべて正常に動作しますが、奇妙なエラーが発生します...

通貨記号が間違っているように見えます。£記号を表示する代わりに、上にキャレットが付いたAと、ポンド記号の下半分のように見えるものが表示されます。

そこで、.UTF-8を削除しようとすると、注意のあるAが消えますが、それでもポンド記号の下半分しか表示されません。

私が欲しいのは、単に£記号です。誰か助けてもらえますか?

PHPエラー

4

1 に答える 1

3

ドキュメントによると、imagestringはデフォルトのフォントでLatin2のみをサポートしており、エンコードすることはできません£。エンコードできたとしても£、UTF-8をLatin2に変換してから渡す必要があります。

imageTtfTextUTF-8をサポートするものを使用します。7番目の引数で機能するTrueTypeフォントファイルを指す必要があります。

于 2012-12-07T19:05:24.597 に答える