NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
Packagist · #1142 most downloaded on Packagist
Portable UTF-8 library - performance optimized (unicode) string functions for php.
Last release 5 months ago
17 Apr 2026
Ships unpredictably
gaps range from 3 weeks to 3.1 years
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
12 years old
237 releases · first in 2014
optimize performance for "bootstrap.php"
fix "UTF8::to_latin1()" for non-char input + optimize performance
- fix unicode support for regex
One column per quarter.
optimize performance for UTF8::rawurldecode() and UTF8::urldecode()
optimize "UTF8::strrev()" with support for emoji chars
optimize html-encoding for unicode surrogate pairs (e.g. UTF-16)
fix html-encoding for unicode surrogate pairs (e.g. UTF-16)
no more 100% support for "mbstring_func_overload", it's already deprecated in php
update "UTF8::is_json()" + tests
update "UTF8::is_base64()" + tests
update "UTF8::str_truncate_safe()" + tests
use autoloader + namespace for "tests/"
- update phpcs fixer config - optimizing via "rector/rector"
- optimize "getData()" - use phpcs fixer
optimize "UTF8::str_replace_beginning()" && "UTF8::str_replace_ending()"
"UTF8::get_file_type()" is now public + tested
optimize "UTF8::ord()" performance
merge UTF8::titlecase() && UTF8::str_titleize()
- test with PHP 7.3
fix binary check for UTF16 / UTF32
- simplify "UTF8::encode()"
new encoding-from / -to parameter for "UTF8::encode()"
more fixes for "mbstring_func_overload"
optimize performance for "UTF8::remove_bom()"
fix some breaking changes from "strict_types=1"
use "UTF8::encode()" internal ...
fix tests without "mbstring"-ext
use phpstan (+ fixed many code smells)
merge methods from "Stringy" into "UTF8"
update encoding list for "UTF8::str_detect_encoding()"
update -> "require-dev" -> "phpunit"
performance optimizing -> use "UTF8::normalize_encoding()" if needed -> use "CP850" encoding only if needed -> don't use "UTF8::html_encode()" in a fo
fix tests without "finfo" (e.g. appveyor - windows)
optimize "UTF8::is_binary()" v2
optimize "UTF8::is_binary()" + new tests
-> this is a breaking change, because "symfony/polyfill" contains more dependencies as we use now
-> this is a breaking change, because "symfony/polyfill" contains more dependencies as we use now
before: "symfony/polyfill-apcu": "~1.0", "symfony/polyfill-php54": "~1.0", "symfony/polyfill-php55": "~1.0", "symfony/polyfill-php56": "~1.0", "symfony/polyfill-php70": "~1.0", "symfony/polyfill-php71": "~1.0", "symfony/polyfill-php72": "~1.0", "symfony/polyfill-iconv": "~1.0", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-icu": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-util": "~1.0", "symfony/polyfill-xml": "~1.0"
after: "symfony/polyfill-php72": "~1.0", "symfony/polyfill-iconv": "~1.0", "symfony/polyfill-intl-grapheme": "~1.0", "symfony/polyfill-intl-normalizer": "~1.0", "symfony/polyfill-mbstring": "~1.0"
- update php-unit to 6.x
"UTF8::number_format()" -> removed deprecated method
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →