как я могу обнаружить еврейские символы и iso8859-8 и utf8 в строке с помощью php

DateTime.Now.Date.ToShortDateString()

конкретная культура.

Лучше придерживаться с:

DateTime.Now.ToString("d/MM/yyyy");
5
задан ufk 7 November 2009 в 20:43
поделиться

3 ответа

Вот карта набора символов iso8859-8 . Диапазон E0 - FA зарезервирован для иврита. Вы можете проверить эти символы в классе символов:

[\xE0-\xFA]

Для UTF-8 диапазон , зарезервированный для иврита , составляет от 0591 до 05F4. Так что вы можете определить это с помощью:

[\u0591-\u05F4]

Вот пример совпадения регулярного выражения в PHP:

echo preg_match("/[\u0591-\u05F4]/", $string);
14
ответ дан 18 December 2019 в 08:29
поделиться

Во-первых, такая строка будет полностью бесполезно - сочетание двух разных наборов символов?

Оба еврейских символа в iso8859-8 и каждый байт многобайтовых последовательностей в UTF-8 имеют значение ord ($ char)> 127 . Итак, я бы нашел все байты со значением больше 127, а затем проверял, имеют ли они смысл как is8859-8, или если вы думаете, что они будут иметь больше смысла как последовательность UTF8 ...

0
ответ дан 18 December 2019 в 08:29
поделиться

Вот небольшая функция, чтобы проверить, является ли первый символ в строке еврейским:

function IsStringStartsWithHebrew($string)
{
    return (strlen($string) > 1 && //minimum of chars for hebrew encoding
        ord($string[0]) == 215 && //first byte is 110-10111
        ord($string[1]) >= 144 && ord($string[1]) <= 170 //hebrew range in the second byte.
        );
}

удачи :)

1
ответ дан 18 December 2019 в 08:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: