我希望能够检测到(使用正则表达式)字符串是否包含PHP编程语言中的希伯来文字符utf8和iso8859-8。谢谢!如何使用php在字符串中检测到希伯来语字符iso8859-8和utf8
回答
这里是map of the iso8859-8 character set。范围E0 - FA似乎是保留给希伯来文的。您可以为您在字符类这些字符:
[\xE0-\xFA]
为UTF-8,range reserved for Hebrew似乎是0591至05F4。所以,你可以检测与:
[\u0591-\u05F4]
这里有一个正则表达式匹配的PHP的例子:
echo preg_match("/[\u0591-\u05F4]/", $string);
首先,这样的字符串将完全无用 - 两种不同字符集的混合?
iso8859-8中的希伯来语字符和UTF-8中的多字节序列的每个字节的值均为ord($char) > 127
。所以我会做的是找到所有字节值大于127,然后检查它们是否有意义,如is8859-8,或者如果你认为他们会更有意义的UTF8序列...
一个角色怎么能有ORD($字符)> 255 ISO-8859-8?这是一个字节! –
很好。我不知道为什么,但我完全搞砸了 - 非ascii介于128和255之间 - 现在已经修复。 – gnud
我想那是你同时的意思。你真幸运,我在等你投降之前等着你;-) –
这里的一个小功能来检查字符串的第一个字符是否是希伯来文:
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.
);
}
好运:)
好,如果你的PHP文件进行编码,UTF-8应该是个例你在里面有希伯来语,你应该使用以下至REGx:
$string="אבהג";
echo preg_match("/\p{Hebrew}/u", $string);
// output: 1
function is_hebrew($string)
{
return preg_match("/\p{Hebrew}/u", $string);
}
- 1. 检测希伯来文字符在PHP中的字符串
- 2. 使用file_get_contents和希伯来字符串
- 3. 希伯来语字符串希伯来语
- 4. 字符串转换为希伯来语
- 5. 检测字符串中的希伯来字母
- 6. 从字符串中去掉希伯来语格式化字符
- 7. PHP麻烦转换编码希伯来语(ISO-8891-8-I)字符串返回到希伯来文字符
- 8. 转换希伯来语字符为UTF-8使用PHP
- 9. 需要显示“希伯来语”字符
- 10. NG模式只希伯来语字符
- 11. 转换希伯来字符以英语
- 12. 希伯来语和数字
- 13. php strstr没有检测到阿拉伯字符串中的子字符串
- 14. Strpos不匹配希伯来字符串
- 15. PHP希伯来文字符数
- 16. 安卓希伯来语RTL字符串与数字值翻转
- 17. 查询字符串中的字符编码,希伯来文
- 18. 如何在Python中反转希伯来字符串?
- 19. 如何在python 3中生成希伯来字符串?
- 20. 在android中显示希伯来字符
- 21. 比较python中的希伯来语字符串
- 22. 红宝石中的希伯来语字符串
- 23. Invoke-WebRequest和希伯来字符
- 24. json_encode,utf8和希腊字符
- 25. php |反向希伯来语字符串,但没有反向英文字母
- 26. 用希伯来语值问题(?UTF8)
- 27. 检测utf8字符串中的latin1字符
- 28. 如何在PHP上使用substr_count来计算阿拉伯语子字符串
- 29. aspnet角2中的希伯来字符
- 30. 希伯来文字符在日食
问题是E0-FA也会以UTF-8的形式出现,但不会像nebrew字符那样运行...... – gnud
@gnud:这就是为什么你不应该使用UTF-8字符串上的iso8859-8正则表达式 – Andomar