#41878 [Opn->Fbk]: special characters where not displayed as graphic

From: Date: Tue, 03 Jul 2007 14:07:25 +0000
Subject: #41878 [Opn->Fbk]: special characters where not displayed as graphic
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-114616@lists.php.net to get a copy of this message
ID: 41878 Updated by: tony2001@php.net Reported By: letters at rmroppert dot de -Status: Open +Status: Feedback Bug Type: GD related Operating System: NetBSD (different Versions) PHP Version: 4.4.7 Assigned To: pajoye Previous Comments: ------------------------------------------------------------------------ [2007-07-03 13:50:26] letters at rmroppert dot de Hello, thank you for the answer. I thought it is utf-8, because the function mb_detect_encoding gives utf-8. After your answer i testet it with function is_utf8($string) { // From http://w3.org/International/questions/qa-forms-utf-8.html return preg_match('%^(?: [\x09\x0A\x0D\x20-\x7E] # ASCII | [\xC2-\xDF][\x80-\xBF] # non-overlong 2-byte | \xE0[\xA0-\xBF][\x80-\xBF] # excluding overlongs | [\xE1-\xEC\xEE\xEF][\x80-\xBF]{2} # straight 3-byte | \xED[\x80-\x9F][\x80-\xBF] # excluding surrogates | \xF0[\x90-\xBF][\x80-\xBF]{2} # planes 1-3 | [\xF1-\xF3][\x80-\xBF]{3} # planes 4-15 | \xF4[\x80-\x8F][\x80-\xBF]{2} # plane 16 )*$%xs', $string); } and this gives 0, also not utf-8. :-( I quickly made this test: I use char("äüö") it gives 228 which is correct ISO... "ä", then utf8_encode("äüö") and testing with the function is_utf8 gives 1, also the string seems now to be utf-8 encoded. If i now send this converted string to "imagettftext" the result is again one square and ö. Possibly i made something wrong, because i am not an php programmer. But for me it seems, that the code of two characters become one utf-8 character. I am making more tests next days an then i tell the results. If someone can tell some futher tests, i will do them an post the results. ------------------------------------------------------------------------ [2007-07-03 08:59:25] pajoye@php.net Do you use UTF-8? Text has to be given in UTF-8. If not, it may cause some troubles by the encoding detection or the glyph selection in freetype (esp. when the font only has utf-8). ------------------------------------------------------------------------ [2007-07-02 23:23:42] letters at rmroppert dot de Description: ------------ want to put special characters (german umlauts) into an image. I use imagettftext() and the string "( ä ü ö xx Ä Ü Ö ß ) without blanks ( äüöxxÄÜÖß )". If i put an blank around the characters it works without blanks there squares. You see the result on: http://heisenberg.rmroppert.com/test/gd_php_out.pdf I tried the same on different machines (i386) under different NETBSD Versions (NetBSD 1.6, NetBSD 3.0.1, NetBSD 3.1) and different php versions. You may find the output of phpinfo of our testserver under: http://heisenberg.rmroppert.com/test/phpinfo1.pdf I think this is an problem of th built-in version og gd. Perhaps the image is correct if i use perl and gnuplot. Reproduce code: --------------- <?php $argtext=" ( ä ü ö xx Ä Ü Ö ß ) without blanks ( äüöÄÜÖß ) "; $font1="/usr/pkg/share/httpd/htdocs/testphp/test/Arial.ttf"; $im = imagecreate (1810, 100); $white = imagecolorallocate ($im, 255, 255, 255); $black = imagecolorallocate ($im, 0, 0, 0); imagefilledrectangle($im,0,0,609,99,$white); imagettftext ($im, 30, 0, 10, 40, $black, $font1, $argtxt); header ("Content-type: image/png"); imagejpeg($im); imagedestroy($im); ?> Expected result: ---------------- see links in Description ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=41878&edit=1

« previous php.bugs (#114616) next »