Article
utf8_encode and utf8_decode Deprecated
Replace the ISO-8859-1 oriented utf8_encode/utf8_decode pair with explicit mbstring or iconv conversions.
PHP 8.2 deprecated utf8_encode() and utf8_decode(). They convert between ISO-8859-1 and UTF-8 only—despite the names suggesting a universal “make this UTF-8” fix. Source: migration82 deprecated features.
# LEGACY — often wrong if source is not ISO-8859-1
$utf8 = utf8_encode($latin1);
$latin1 = utf8_decode($utf8);
# MODERN — be explicit about encodings
$utf8 = mb_convert_encoding($bytes, 'UTF-8', 'ISO-8859-1');
$bytes = mb_convert_encoding($utf8, 'ISO-8859-1', 'UTF-8');
# or iconv('ISO-8859-1', 'UTF-8', $bytes)
Modernization guidance
- Store and transport UTF-8 end-to-end (MySQL
utf8mb4, HTTP charset, JSON). - Delete “encode just in case” layers that double-encode.
- When reading legacy files, detect or configure the real source encoding—do not assume Latin-1.
Scan with deprecated checker. Broader charset context: PHP 5 to modern PHP. Parent: deprecated hub.
Related scanners: PHP Version Compatibility Checker · PHP Deprecated Checker.
Related tools
- Composer.json Validator Validate composer.json structure and common mistakes without running composer install.
- Legacy PHP Risk Checker Paste PHP source for a static scan that classifies removed APIs, deprecated calls, and security-sensitive leg…
- PHP Deprecated Checker Find deprecated functions and patterns in pasted PHP to prioritize modernization work.
- PHP Environment Compare Compare two PHP environment summaries to find directive and extension mismatches.
- PHP Modernization Roadmap Build an ordered migration stage list from your PHP version, framework, Composer, database API, and deploymen…
- PHP Version Compatibility Checker Scan pasted PHP for version-sensitive syntax and APIs to plan upgrades across PHP releases.
Related reading
- Composer Modernization Center Add Composer to legacy PHP projects, migrate includes to autoloading, set platform constraints, and replace a…
- PHP 5 to Modern PHP: Complete Incremental Migration Guide A deep, production-minded path from PHP 5.x codebases to supported PHP 8.x: removed extensions, charset, PDO,…
- PHP Security Modernization for Legacy Applications Upgrade inherited PHP security practices: prepared statements, password hashing, sessions, CSRF, XSS escaping…
- PHP 7 to PHP 8 Migration Guide Deep guide to PHP 8.0 breaking changes that matter for PHP 7 applications, with upgrade tactics through suppo…
- Inheriting a Legacy PHP Application A first-30-days playbook for developers handed an unfamiliar PHP codebase: runtime truth, risk triage, and sa…