繁体   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