Charset conversion and string manipulation wrapper with a large defined set of aliases.
composer require zbateson/mb-wrapper
A huge thank you to all my sponsors. <3
If this project's helped you, please consider sponsoring me.
PHP 8.1 or newer. Tested on PHP 8.1, 8.2, 8.3, 8.4, and 8.5.
MbWrapper is intended for use wherever mb_* or iconv_* is used. It scans supported charsets returned by mb_list_encodings(), and prefers mb_* functions, but will fallback to iconv if a charset isn't supported by the mb_* functions.
A list of aliased charsets is maintained for both mb_* and iconv, where a supported charset exists for an alias. This is useful for mail and http parsing as other systems may report encodings not recognized by mb_* or iconv.
Charset lookup is done by removing non-alphanumeric characters as well, so UTF8 will always be matched to UTF-8, etc.
The following wrapper methods are exposed:
mb_convert_encoding,iconvwithMbWrapper::convertmb_substr,iconv_substrwithMbWrapper::getSubstrmb_strlen,iconv_strlenwithMbWrapper::getLengthmb_check_encoding,iconv(for verification) withMbWrapper::checkEncoding
$mbWrapper = new \ZBateson\MbWrapper\MbWrapper();
$fromCharset = 'ISO-8859-1';
$toCharset = 'UTF-8';
$mbWrapper->convert('data', $fromCharset, $toCharset);
$mbWrapper->getLength('data', 'UTF-8');
$mbWrapper->substr('data', 'UTF-8', 1, 2);
if ($mbWrapper->checkEncoding('data', 'UTF-8')) {
echo 'Compatible';
}BSD licensed - please see license agreement.
