Похоже, он считает число байтов в используемой кодировке.Например, похоже, что вторая строка занимает два байта на непробельный символ, тогда как первая строка принимает три байта на непробельный символ.Я ожидал бы:
echo strlen("A B C D E F G H I")
, чтобы распечатать 17 - один байт на символ ASCII.
Я предполагаю, что все это использует кодировку UTF-8 - что, безусловно,-линии с изменяющейся шириной представления.