Strlen() 和非拉丁字符
Strlen() and Non-Latin Characters
我的 switch
语句中有此代码 case strlen($search_term) > 15:
。我不明白为什么希腊字符的解析方式不同。例如,拉丁语中长度为 10 的 string
会通过 case
,但如果 string
是希腊语,则不会。
除了解决方案,我希望能解释一下我的问题。
strlen()
returns 字符串的 字节 ,而不是长度。
许多希腊字符是 2 个字节而不是 1 个字节,这就是为什么你认为你得到了错误的结果。
改用mb_strlen()
:http://lt.php.net/manual/en/function.mb-strlen.php
希望对您有所帮助
我的 switch
语句中有此代码 case strlen($search_term) > 15:
。我不明白为什么希腊字符的解析方式不同。例如,拉丁语中长度为 10 的 string
会通过 case
,但如果 string
是希腊语,则不会。
除了解决方案,我希望能解释一下我的问题。
strlen()
returns 字符串的 字节 ,而不是长度。
许多希腊字符是 2 个字节而不是 1 个字节,这就是为什么你认为你得到了错误的结果。
改用mb_strlen()
:http://lt.php.net/manual/en/function.mb-strlen.php
希望对您有所帮助