如何使用PHP将阿拉伯字符转换为Unicode

|| 我想知道如何将一个单词完全转换为unicode: http://www.arabunic.free.fr/ 考虑到阿拉伯文本可能包含连字,有人知道如何使用PHP做到这一点吗? 谢谢 编辑 我不确定\ unicode是什么,但是考虑到阿拉伯字符根据其位置而具有不同的上下文形式,因此我需要在等效机器编号中包含阿拉伯字符-参见此处: http://en.wikipedia.org/wiki/Arabic_alphabet#Table_of_basic_letters 同一字符在不同位置:   ب| ب| | بـ | بـ 我认为这一定是将每个阿拉伯字符转换为等效数字的一种方法,但是如何呢? 编辑 我仍然相信,有一种方法可以根据位置将每个字符转换为它的形式 任何想法表示赞赏。     
已邀请:
        您所需要的就是一个叫做utf8Glyphs的函数,您可以在ArGlyphs.class.php中找到它。 并访问Ar-PHP以获取有关该项目和类的更多信息。 这将使单词具有相同的字符(字形)反向。 用法示例:
    <?php
    include(\'Arabic.php\');
    $Arabic = new Arabic(\'ArGlyphs\');

    $text = \'بسم الله الرحمن الرحيم\';
    $text = $Arabic->utf8Glyphs($text);
    echo $text;
    ?>
    
        只需将包含阿拉伯语文本的元素设置为\“ rtl \”(从右到左),然后输入正确的阿拉伯语拼写,文本就会以所有连字查找。 div { 方向:rtl; } 附带说明,别忘了阅读“每个软件开发人员绝对绝对肯定要了解的Unicode和字符集(没有任何借口!)” 考虑一下:\“ ba \”(ب)阿拉伯字母是\“ ba \”,无论它出现在句子中的什么位置。     
        我假设您拥有将بهروز转换为\\ u0628 \\ u0647 \\ u0631 \\ u0648 \\ u0632的权限,请看一下http://hsivonen.iki.fi/php-utf8/在调用unicodeToUtf8( \'بهروز\')是将数组中获得的整数转换为十六进制,并确保它们具有4digigts和带有\\ u的前缀em,并且操作完成。你也可以使用json_encode获得相同的 json_encode(\'بهروز\')//返回\“ \\ u0628 \\ u0647 \\ u0631 \\ u0648 \\ u0632 \” 编辑: 似乎您想获取第一个不同于第二个的بب字符代码,所有您需要做的就是使用fribidi_log2vis在文本上应用bidi算法,然后通过我之前说过的一种方法来获取字符代码。 这是示例: $ string = \'بب\'; // \\ u0628 \\ u0628 $ bidiString = fribidi_log2vis($ string,FRIBIDI_LTR,FRIBIDI_CHARSET_UTF8); json_encode($ bidiString); // \\ ufe90 \\ ufe91 编辑: 我只是记得tcpdf具有使用纯php实现的bidi算法,因此如果您无法使php的fribidi扩展正常工作,则可以使用tcpdf(默认情况下utf8Bidi受保护,因此需要将其公开) require_once(\'utf8.inc \'); // http://hsivonen.iki.fi/php-utf8/ require_once(\'tcpdf.php \'); // http://www.tcpdf.org/ $ t =新的TCPDF(); $ text = \'بب\'; $ t-> utf8Bidi(utf8ToUnicode($ text)); //将返回类似array(0 => 65168,1 => 65169)的数组     
        尝试这个:
<?php
    $string = \'a\';
    $expanded = iconv(\'UTF-8\', \'UTF-32\', $string);
    $arr = unpack(\'L*\', $expanded);
    print_r($arr);
?>
    
        我认为您可以尝试:
<meta charset=\"utf-8\" />
如果这不起作用,请使用FloatBird Answer     

要回复问题请先登录注册