我想知道如何将单词转换为unicode,如下所示: http://www.arabunic.free.fr/
考虑到阿拉伯文本可能包含连字,是否有人可以使用PHP知道如何做到这一点?
感谢
修改
我不确定那个“unicode”是什么,但我需要在它的等效机器编号中使用阿拉伯字符,因为阿拉伯字符根据其位置具有不同的上下文形式 - 请参阅此处:
http://en.wikipedia.org/wiki/Arabic_alphabet#Table_of_basic_letters
不同位置的相同角色:
ب| ب| ب| ب
我认为它必须是将每个阿拉伯字符转换为它的等价数字的方法,但是如何?
修改
我仍然相信有一种方法可以根据位置将每个角色转换为它的形式
任何想法都表示赞赏..
答案 0 :(得分:12)
您需要的所有功能都是:utf8Glyphs,您可以在ArGlyphs.class.php中找到它从ar-php下载 并访问Ar-PHP获取有关项目和类的更多有关项目和类的信息。
这将使用相同的字符(字形)反转该单词。
使用示例:
<?php
include('Arabic.php');
$Arabic = new Arabic('ArGlyphs');
$text = 'بسم الله الرحمن الرحيم';
$text = $Arabic->utf8Glyphs($text);
echo $text;
?>
答案 1 :(得分:2)
只需将包含阿拉伯语文本的元素设置为“rtl”(从右到左),然后输入正确拼写的阿拉伯语,文本将以所有连线进行查找。
div { 方向:RTL; }
想一想:“ba”(ب)阿拉伯语字母无论在句子中出现的位置都是“ba”。
答案 2 :(得分:2)
我假设您想要将بهروز转换为\ u0628 \ u0628 \ u0348 \ u0632 \ u0632看看http://hsivonen.iki.fi/php-utf8/调用unicodeToUtf8('بهروز')之后你要做的就是转换你得到的整数数组到十六进制&amp;确保他们有4digigts&amp;前缀em与\ u&amp;你完成了。也可以使用json_encode
获得相同的效果json_encode('بهروز') // returns "\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有bidi算法,它使用纯php实现,所以如果你不能让php的fribidi扩展工作,你可以使用tcpdf(默认情况下utf8Bidi受保护,所以你需要公开)
require_once('utf8.inc'); // http://hsivonen.iki.fi/php-utf8/ require_once('tcpdf.php'); // http://www.tcpdf.org/ $t = new TCPDF(); $text = 'بب'; $t->utf8Bidi(utf8ToUnicode($text)); // will return an array like array(0 => 65168, 1 => 65169)
答案 3 :(得分:0)
试试这个:
<?php
$string = 'a';
$expanded = iconv('UTF-8', 'UTF-32', $string);
$arr = unpack('L*', $expanded);
print_r($arr);
?>
答案 4 :(得分:0)
我想你可以试试:
<meta charset="utf-8" />
如果这不起作用,请使用FloatBird Answer
答案 5 :(得分:0)
对于FloatBird的使用,我完全同意ar-php,正如他在FloatBird所说的那样,您会发现它的意思是,他们已经将版本4之后的类名从阿拉伯语到 I18N_Arabic ,因此,为了使代码使用arabic.php ver 4.0,您需要将代码更改为
<?php
include('Arabic.php');
$Arabic = new I18N_Arabic('ArGlyphs');
$text = 'بسم الله الرحمن الرحيم';
$text = $Arabic->utf8Glyphs($text);
echo $text;
?>
还要注意,您需要将php代码文件放入 I18N 文件夹中。
无论如何,它的运行都很出色,再次感谢{{3}}