谁能解释strlen
PHP 的 intl 扩展中 Unicode 函数的这种奇怪行为?
var_dump(grapheme_strlen("a\r\n")); // (ASCII 'a') length: 3
var_dump(grapheme_strlen("の\r\n")); // length: 2
var_dump(grapheme_strlen("\r\n")); // length: 2
似乎grapheme_strlen
将“\r\n”(CR LF,它们是用于 Windows 上的行分隔的两个单独的代码点)计算为单个字素,考虑到函数的名称,这可能是相当合理的,但它只有在行结尾前面有一个非 ASCII 字符。为什么?