gpt4 book ai didi

php - 加泰罗尼亚语字符 à 和 è 不适用于 php imagestringup - 如何解码它们?

转载 作者:搜寻专家 更新时间:2023-10-31 21:12:36 24 4
gpt4 key购买 nike

当我用带有西类牙语的 $text 调用下面的代码时,我得到了带有图像的正确文本,但是当我用加泰罗尼亚语用 $text 调用相同的代码时,我没有在图像中得到正确的文本。我知道西类牙文特殊字符 á 和 é 有效,但加泰罗尼亚语字符 à 和 è 无效。

你能帮我解决这个问题吗?

 <?php
//$text = "Sándalo Ayurvédicos"; // Text in Spanish
$text = "Sàndal Ayurvèdics"; // Text in Catalan
//$text = utf8_encode($text);
//$text = utf8_decode($text);
$img = "sample";
$im = imagecreatetruecolor(25, 350);
$black = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im, $black);
$textcolor = imagecolorallocate($im, 73, 100, 23);
imagestringup($im, 3, 10, 340, $text,$textcolor);
imagepng($im, $img.'.png');
imagedestroy($im);
$imagename = $img.'.png';
print '<img src="'.$imagename.'"></img>';
?>

最佳答案

$string 参数在 PHP 中非常模糊,因为 PHP 中的字符串不携带编码,而 PHP 根本不统一字符串的编码。换句话说,它们是字节数组,不像字符串通常在高级语言中,所有字符串都有内部统一的 unicode 编码,这样的参数不会有歧义。

我从评论中看到字符串必须在 ISO-8859-2 中,它只支持 á 但不支持 à

您可以使用 imagettftext记录为采用 UTF-8 编码的字符串,这很好,因为至少可以绘制所有字符。但它需要 TrueType 字体,我在这里使用 Arial Unicode:

<?php
header("Content-Type: image/png");


$text = "汉语/漢語"; //My PHP is already saved as UTF-8 in text editor - no conversion necessary

$im = imagecreatetruecolor(25, 350);
$black = imagecolorallocate($im, 0, 0, 0);
imagecolortransparent($im, $black);
$textcolor = imagecolorallocate($im, 73, 100, 23);

//270 is the angle, from up-to-bottom
imageTtfText( $im, 12, 270, 10, 10, $textcolor, "./arial_unicode.ttf", $text );
//12 is font size
//Camel-cased because imagettftext just looks horrible and php is case-insensitive

imagepng($im);
imagedestroy($im);

这是上面代码生成的图像:

http://i.imgur.com/pUxibBf.png

关于php - 加泰罗尼亚语字符 à 和 è 不适用于 php imagestringup - 如何解码它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16079407/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com