Я использовал vi/vim для 25 + годы. Если Вы уже знаете некоторого редактора командной строки, то, возможно, Вы не должны изучать vi/vim. Но если Вы не знаете никаких других редакторов командной строки очень хорошо, стоит изучить это. Довольно легко быть продуктивным в vi/vim с небольшим усилием.
На самом деле вам даже не нужно расширение mb_string:
if (strlen($string) != strlen(utf8_decode($string)))
{
echo 'is unicode';
}
И чтобы найти кодовую точку данного символа:
$ord = unpack('N', mb_convert_encoding($string, 'UCS-4BE', 'UTF-8'));
echo $ord[1];
Обычно вы делаете что-то вроде:
if (mb_strlen($ch) != strlen($ch)) ...
Я должен добавить: strlen считает байты, а mb_strlen считает символы (правильная обработка многобайтовых символов, что, я думаю, это то, что вы на самом деле речь идет скорее о юникоде, чем о юникоде - поскольку юникод также охватывает более сотни однобайтовых символов, неотличимых от ASCII)
Для символа Юникода ВСЕГДА будет установлен самый старший байт, независимо от того, какое значение имеет этот символ, является ли он частью многобайтового символа Юникода или чего-то еще. Вы не можете просто проверить, больше ли в строке байтов, чем символов, поскольку некоторые символы Юникода состоят только из одного байта. Если какой-либо символ в байтовом значении строки больше 127, эта строка содержит код Юникода.
Строки в PHP - это байтовые потоки, а не символьные потоки. На самом деле в PHP не может быть строк Unicode; Вам нужно закодировать свои символы с помощью некоторой кодировки. Если вы хотите охватить весь диапазон Unicode, наиболее очевидным выбором будет UTF-8.
Если вы хотите получить кодовую точку байтового потока, закодированного в utf-8, вы можете использовать эту библиотеку: http: // hsivonen.iki.fi/php-utf8/
Однако мне интересно, для чего это вам нужно? Скорее всего, вы сможете решить все свои проблемы, просто используя utf-8.
Спасибо, ребята .. Наконец-то я получил ответ, который искал.
Получил включаемый файл с http://hsivonen.iki.fi/php-utf8/ .
Следующий код решил мою проблему:
<?php
require_once("utf8.inc");
/*** create a unicode string ***/
$s = "حملة إلا صلاتي";
$out = utf8ToUnicode($s);
for ($i=0;$i < strlen($s);$i++)
echo dechex($out[$i]).".";
?>