PHP输出文本图像字符编码错误

时间:2012-12-07 18:30:02

标签: php image-processing utf-8 character-encoding ascii

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 Error

1 个答案:

答案 0 :(得分:3)

根据documentationimagestring仅支持默认字体中的Latin2,它不能编码£。即使它可以编码£,你也应该在传递它之前将你的UTF-8转换为Latin2。

使用支持UTF-8的imageTtfText。您需要将其指向第7个参数中的工作TrueType字体文件。