Ами ако входящият стринг е в utf8 няма да работи - независмо дали подаваш кирилица или китайски.
Повечето стрингови функции не работят кореткно при utf8 стрингове. Затова си имат аналози с mb_xxxxxx отпред. В случая функията успява да намери правилно "table" даже и в utf8 стринг, защото ascii символите имат пак същата кодировка и в utf8.
http://www.php.net/manual/en/function.mb-strpos.phpи strlen() също няма да работи правилно.
http://php.net/manual/en/function.mb-strlen.phpЧастен случай е обаче ако подаваш кирилица в cp1251. Тогава функцията ще търси правилно и на кирилица, но задължително преди да я извикаш трябва да се зададе locale в 1251:
http://www.php.net/manual/en/function.setlocale.phpАко си пренапишеш функцията с mb_ аналозите, locale няма да ти трябва и ще работи всякак.
------------------------------------------
това упражнение го правя с preg_match_all() и флаг PREG_OFFSET_CAPTURE
обаче и там има грешка/подробност, че preg_match_all връща отместването в байтове (а не в utf8 символи) и затова офсета след това го нормализирам, да показва коректно отместването в символи.