The functions, “utf8_encode” and “utf8_decode” are used to convert strings from ISO-8859-1 to UTF-8 encodings.
They will always convert character codings because they won’t detect the actual character encoding in a text.
PHP contains both functions, but they cannot detect or convert other character codings like UTF-16 to UTF-8.
Due to misleading function names, little to no error messages, and no support, both the “utf8_encoide” and “utf8_decode” functions are deprecated in PHP 8.2.
How to Fix “Functions utf8_encode and utf8_decode are Deprecated in PHP 8.2”
To fix “Functions utf8_encode and utf8_decode are Deprecated in PHP 8.2”, you need to use the “mb_convert_encoding” function instead of the “utf8_encode” or “utf8_decode” functions.
You can also use the intl and iconv extensions to convert character encodings.
Problem: In PHP 8.2, the utf8_encode and utf8_decode functions are deprecated.
<?php $utf8 = utf8_encode("\xa5\xa7\xb5"); // ISO-8859-2 -> UTF-8 $iso88592 = utf8_decode($utf8); // UTF-8 -> ISO-8859-2
Using the utf8_encode and utf8_decode functions will give this warning:
Deprecated: Function utf8_encode() is deprecated in main.php on line 3 Deprecated: Function utf8_decode() is deprecated in main.php on line 4
Solution: Use the “mb_convert_encoding” function.
<?php $utf8 = mb_convert_encoding("\xa5\xa7\xb5", 'UTF-8', 'ISO-8859-2'); // ISO-8859-2 -> UTF-8 $iso88592 = mb_convert_encoding($utf8, 'ISO-8859-2', 'UTF-8'); // UTF-8 -> ISO-8859-2