Я хочу знать, как преобразовать слово в unicode точно так же: http://www.arabunic.free.fr/
может ли кто-нибудь знать, как это сделать с использованием PHP, учитывая, что арабский текст может содержать лигатуры?
благодаря
редактировать
Я не уверен, что это «юникод», но мне нужно, чтобы арабский символ был эквивалентен номеру машины, учитывая, что арабские символы имеют разные контекстуальные формы в зависимости от их положения – см. Здесь:
http://en.wikipedia.org/wiki/Arabic_alphabet#Table_of_basic_letters
тот же символ в другом положении:
ب | ب | ب | ب
Я думаю, что это должен быть способ конвертировать каждый арабский символ в его эквивалентный номер, но как?
редактировать
Я все еще верю, что есть способ конвертировать каждого персонажа в его форму в зависимости от позиций
любая идея ценится.
Все, что вам нужно, это функция, называемая utf8Glyphs, которую вы можете найти в ArGlyphs.class.php, загрузите ее из ar-php и посетите Ar-PHP для ArPHP, чтобы получить дополнительную информацию о проекте и классах.
Это изменит слово с теми же символами (глифы).
Пример использования:
<?php include('Arabic.php'); $Arabic = new Arabic('ArGlyphs'); $text = 'بسم الله الرحمن الرحيم'; $text = $Arabic->utf8Glyphs($text); echo $text; ?>
Просто установите элемент, содержащий арабский текст, в «rtl» (справа налево), затем введите правильно написанный арабский текст, и текст будет течь со всеми искаженными лигатурами.
div {направление: rtl; }
На стороне заметьте, не забудьте прочитать «Абсолютный минимум каждый разработчик программного обеспечения Абсолютно, положительно должен знать о юникоде и наборах символов (без отговорок!)»
Подумайте об этом: «ba» (ب) арабское письмо является «ba» независимо от того, где оно появляется в предложении.
Я предполагаю, что вы хотите конвертировать بهروز в \ u0628 \ u0647 \ u0631 \ u0648 \ u0632 посмотреть http://hsivonen.iki.fi/php-utf8/ все, что вам нужно сделать после вызова unicodeToUtf8 ('بهروز') для преобразования целых чисел, которые вы получили в массиве, в hex и убедитесь, что у них есть 4digigts & prefix em с \ u и все готово. также вы можете получить то же самое с помощью json_encode
json_encode ('بهروز') // возвращает "\ u0628 \ u0647 \ u0631 \ u0648 \ u0632"
РЕДАКТИРОВАТЬ:
кажется, вы хотите получить коды символов بب, которые сначала отличаются от второго, все, что вам нужно сделать, это применить алгоритм bidi на вашем тексте, используя fribidi_log2vis, после чего получите код символа одним из способов, о которых я говорил ранее.
вот пример:
$ string = 'بب'; // \ u0628 \ u0628 $ bidiString = fribidi_log2vis ($ string, FRIBIDI_LTR, FRIBIDI_CHARSET_UTF8); json_encode ($ bidiString); // \ ufe90 \ ufe91
РЕДАКТИРОВАТЬ:
я только что вспомнил, что tcpdf имеет биди алгоритм, который реализован с использованием чистого php, поэтому, если вы не можете получить расширение phryidi php для работы, вы можете использовать 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 ($ текста)); // вернет массив, подобный массиву (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 Отвечать