簡體   English   中英

日語的PHP-gd文本顯示很奇怪

[英]PHP-gd text display in Japanese is weird

最后,我不得不使用--enable-gd-jis-conv重新編譯PHP。 但是,日語文本顯示錯誤。

$text = '夏の天気';
$fontfile = '/usr/share/fonts/japanese/TrueType/sazanami-mincho.ttf';

return imagettftext ($image, $size,  $angle,  $x,  $y,  $color, $fontfile, $text);

但是顯示的是不同的漢字 (日語字符)(非常不同,看起來像中文)。

可能是編碼問題嗎?

在RHEL 5.4上使用PHP 5.3.3。

好吧,日語作為多字節編碼語言有很多怪癖。 首先,請確保您的服務器已安裝mbstring模塊。

其次,為減少中途可能發生斷裂的可能性,請嘗試使站點/項目中的所有編碼保持一致:理想情況下,站點視圖和源文件應使用相同的編碼編寫。

專門針對您的問題,您可能想要嘗試使用以下功能:

mb_http_input http://www.php.net/manual/en/function.mb-http-input.php

這將確保您的HTTP輸入正確編碼(即表單數據)。

mb_ internal_ encoding http://www.php.net/manual/zh/function.mb-internal-encoding.php

設置PHP使用的內部編碼。

mb_regex_encoding http://www.php.net/manual/zh/function.mb-regex-encoding.php

設置PHP用於正則表達式的編碼。

mb_convert_encoding http://www.php.net/manual/zh/function.mb-convert-encoding.php

用於字符串轉換。

mb_convert_variables http://www.php.net/manual/zh/function.mb-convert-variables.php

轉換整批字符串/數組的編碼。

編輯 :此外,從模塊名稱中,您可能想要嘗試將JIS編碼的數據饋送到該函數。

我必須運行它才能使其正常工作

$text = mb_convert_encoding('夏の天気', "SJIS", 'UTF-8');
imagettftext($this->im, 58, 0, 50, 100, $text_color, $font, mb_convert_encoding('佳人', 'UTF8', 'UTF-8'));

這對我有用。 似乎可以在幾種不同的日語字體中使用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM