小编Pan*_*ins的帖子

使用GD(imagettftext())和UTF-8字符

只是为了记录 - 我在这里的第一个问题,但希望不是我在社区的最后一个输入.但这不是我在这里的原因.

我目前正在开发一个简单的系统,必须生成一个带有文本的图像.Everthing进展顺利,直到我意识到GD无法处理UTF-8字符

ā,č,ž,ä,ø,é

等等.

要清理 - 我正在使用imagettftext()

试图解决我的问题我深入谷歌并返回了一些解决方案,遗憾的是,他们都没有完全解决我的问题.目前我正在使用我在这个线程中找到的脚本 - PHP函数imagettftext()和unicode

private function properText($text){

    // Convert UTF-8 string to HTML entities
    $text = mb_convert_encoding($text, 'HTML-ENTITIES',"UTF-8");
    // Convert HTML entities into ISO-8859-1
    $text = html_entity_decode($text,ENT_NOQUOTES, "ISO-8859-1");
    // Convert characters > 127 into their hexidecimal equivalents
    $out = "";
    for($i = 0; $i < strlen($text); $i++) {
        $letter = $text[$i];
        $num = ord($letter);
        if($num>127) {
          $out .= "&#$num;";
        } else {
          $out .=  $letter;
        }
    }

    return $out;

}
Run Code Online (Sandbox Code Playgroud)

并且它适用于某些字符但不是所有字符,例如,变音符号未正确转换. …

php gd image utf-8 special-characters

10
推荐指数
1
解决办法
1万
查看次数

标签 统计

gd ×1

image ×1

php ×1

special-characters ×1

utf-8 ×1