Question: Huh, looking at all those string functions, sometimes I get confused. One is using all the time `mb_` functions, the other - plain ones, so the question is simple...

When should I use `mb_strpos();` and when should I go with the plain one (`strpos();`)? 

And, yes, I'm aware about that `mb_` functions stand for multi-byte, but does it really mean, that if I'm working with only utf-8 encoded strings, I should stick with `mb_` functions?

Thanks in advance!

Answer: 
You should use the `mb_` functions whenever you expect to work with text that's not pure ASCII. I.e. you can work with the regular string functions, even if you're using UTF-8, as long as all the strings you're using them on only contain ASCII characters.

```
strpos('foobar', 'foo')  // fine in any (ASCII-compatible) encoding, including UTF-8
strpos('ふーばー', 'ふー') // won't work as expected, use mb_strpos instead

```
I'd say yes, here's the description from the php documentation:

mbstring provides multibyte specific string functions that help you deal with multibyte encodings in PHP. In addition to that, mbstring handles character encoding conversion between the possible encoding pairs. **mbstring is designed to handle Unicode-based encodings such as UTF-8 and UCS-2 and many single-byte encodings for convenience**.... 

If you're not sure that the mb extension is loaded, you should check before because mb-string is a non-default extension.