我正在尝试使用PHP的imgttftext()函数在图像上写入一些乌尔都语文本。如果不使用以下代码转换文本,则无法显示字符:
function convert($text){
$out="";
mb_language('uni');
mb_internal_encoding('UTF-8');
$text = mb_convert_encoding($text, 'HTML-ENTITIES',"UTF-8");
$text = html_entity_decode($text,ENT_NOQUOTES, "ISO-8859-1");
for($i = 0; $i < strlen($text); $i++) {
$letter = $text[$i];
$num = ord($letter);
if($num>127) {
$out .= "&#$num;";
} else {
$out .= $letter;
}
}
return $out;
}
现在,例如包含三个字符 ع چ ں 的文本 e.g. عچں 被作为独立和完整的字符打印到图片上,而不是将这些字符剪切并结合成乌尔都语单词 عچں。
我从这个页面 http://en.wikipedia.org/wiki/List_of_Unicode_characters#Arabic 中使用了带有代码 U+0627、U+0628、U+0629等的字符 ا ب ت ث 等。
我在此共享了代码:https://code.google.com/p/urdu-captcha/downloads/list
如何使它们连在一起以形成正确的单词?注意:在提供的代码中,我添加了字符间的空格,去除这些空格对文本在图像上的显示没有影响。