0

我们已经在网上搜索了解决此问题的方法,但还没有运气...

我们正在使用:

$output = strtoupper($input);    
Imagettftext($image, 27, 0, $start_x1, $start_y1, $color, 'font.ttf', strtok($output, ' '));

将 $output 的第一个单词写入 $image。

这在所有情况下都可以正常工作,除了 Ö,Ä,Ü。这些显示为 ö,ä,ü。我们的 .ttf 确实包含所有字符。

我们尝试使用以下方法转换 $input:

for ($i = 0; $i < strlen($input); $i++)
{
    $cc = ord($input{$i});
    if ($cc >= 128 || $cc == 38)
        $output .= "&#$cc;";
    else
        $output .= chr($cc);
}

但这不起作用......有什么想法可以解决这个问题吗?

提前感谢您的帮助!!

4

2 回答 2

0

你必须使用mb_strtoupper

它将小写字符转换为正确的大写字符。

于 2014-02-19T16:56:48.157 回答
0

它可能与imagettftext. strtoupper取决于语言环境,而且就支持的编码而言,还有些限制。使用mb_strtoupper并告诉它您的字符串采用哪种编码(可能是 UTF-8):

$output = mb_strtoupper($input, 'UTF-8');    
于 2014-02-19T16:57:50.287 回答