Mbstring is an extension of libapache2-mod-php7.2. It is designed to handle a variety of single-byte encodings. In addition, it provides multibyte-specific string functions. It can also convert strings to other encodings. You’ll need to explicitly enable mbstring with a configure option. If you’re not a superuser, you’ll need to run the command as one.
The PHP manual offers a wealth of information on configuration directives. However, mbstring is not a native module, so you’ll need to install libmbfl in order to take advantage of it. Luckily, mbstring’s default charset is UTF-8, so you won’t have to do too much work. Alternatively, you can use the built-in character set, if available.
While you’re at it, you’ll want to check out mbstring’s multibyte functions. For example, the htmlspecialchars() function can replace a single-byte function such as htmlencode. Additionally, mbstring is capable of decoding the Content-Type header. This is something that isn’t always possible in other languages. Aside from that, you’ll need to make sure that your server is properly configured to support multibyte characters.
As a bonus, mbstring comes with a pkg-config script that will automatically detect libmbfl. Libmbfl is a free, open source library that will allow you to take advantage of mbstring. Using it is not necessary, but it may help with performance.
If you’re using mbstring in your PHP 5.6 code, you’ll have to do a bit of planning. The PHP manual lists the most notable features, but you’ll need to do your own homework in order to understand how to make your own mbstring function. Some things to consider include your database’s database id and your mbstring’s internal encoding. When you’re unsure, you can always fall back on your system’s default temporary directory.
For instance, if you’re writing to the log file, you’ll want to make sure you’ve set the max_log_line to a reasonable value. That should be 1024 bytes, unless you need a smaller limit for some reason. Of course, you’ll also need to allow your system’s default directories for uploads. Otherwise, you’ll be forced to fall back on php’s built-in temporary directory.
Lastly, you’ll want to consider the zend.multibyte and the PHP_INI_ALL configuration directives. The latter is a great way to get rid of some of the more bloated functions. One of its key benefits is the ability to handle multibyte encodings. Without it, you’ll have to do some legwork to get your code to work with ISO-8859-1 encodings.
Regardless of which encoding you choose, you’ll need to keep in mind that some encodings won’t function as an internal encoding. For instance, PHP doesn’t recognize ISO-8859-1, and you won’t be able to use mbstring’s multibyte functions on them. So if you’re working with a character encoding that isn’t supported by mbstring, you’ll have to use the zend.script_encoding.
By the way, the sysmssoms and m.i.m.orms are both important but have been replaced by a single command. They’re not as complicated as they sound.