我正在使用PHP函數imagettftext()將文本轉換爲GIF圖像。我正在轉換的文本包含Unicode字符,包括日語。一切工作正常我的本地機器上(Ubuntu 7.10),但在我的虛擬主機服務器上,日文字符被打亂。什麼可能導致差異?一切都應該編碼爲UTF-8。PHP函數imagettftext()和unicode
虛擬主機提供商的服務器上破碎的形象:從我的本地機器上正確的圖像的 http://www.ibeni.net/flashcards/imagetest.php
複製: http://www.ibeni.net/flashcards/imagetest.php.gif
從我的本地機器的phpinfo()的複製: http://www.ibeni.net/flashcards/phpinfo.php.html
的phpinfo複製()從我的虛擬主機服務器: http://example5.nfshost.com/phpinfo
代碼:
mb_language('uni');
mb_internal_encoding('UTF-8');
header('Content-type: image/gif');
$text = '日本語';
$font = './Cyberbit.ttf';
// Create the image
$im = imagecreatetruecolor(160, 160);
$white = imagecolorallocate($im, 255, 255, 255);
$black = imagecolorallocate($im, 0, 0, 0);
// Create some colors
imagefilledrectangle($im, 0, 0, 159, 159, $white);
// Add the text
imagettftext($im, 12, 0, 20, 20, $black, $font, $text);
imagegif($im);
imagedestroy($im);
爲什麼UTF-8> HTML實體> ISO-8859轉換而不是簡單的UTF-8> ISO-8859? – deceze 2012-02-26 23:38:23
+1就像上面提到的那樣,我可能會使用`iconv('UTF-8','ISO-8859-1',$ text)`而不是實體方法,但除了轉換爲** hex代表**是要走的路! Thx的小費! – Levit 2014-08-31 14:12:22
確認沒有與阿拉伯語 – AbiusX 2015-02-07 22:34:12