|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Request #60429 utf8_encode and utf8_decode functions should be deprecated
Submitted: 2011-12-02 01:37 UTC Modified: 2018-08-26 16:38 UTC
Avg. Score:3.0 ± 1.6
Reproduced:5 of 7 (71.4%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: deceze at gmail dot com Assigned:
Status: Suspended Package: *XML functions
PHP Version: Irrelevant OS:
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2011-12-02 01:37 UTC] deceze at gmail dot com
The purpose of the functions utf8_encode and utf8_decode are time and again 
misunderstood and have probably caused more encoding related problems than they 
have solved. The biggest reason for this is their naming. Their purpose is to 
*convert* the encoding of a string from ISO-8859-1 to UTF-8, yet they are named 
in a way that suggests some other magical function that is necessary to work 
with UTF-8 text. Users looking for "UTF-8 support" in their app quickly find 
these functions due to their naming and use them without understanding what they 
do, often only testing with ASCII text which appears to work fine of first 

Why is ISO-8859-1 presumed to be the default encoding when converting to UTF-8, 
hence why do these functions occupy such a prominent spot in the namespace? 
There's simply no good reason for it.

The same functionality is available through iconv and mb_convert_encoding. 
Therefore I suggest to slowly deprecate utf8_encode and utf8_decode to clear up 
a recurring confusion and consolidate features into the existing, much more 
versatile iconv and mb_ functions.


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2013-07-30 02:58 UTC]
-Assigned To: +Assigned To: yohgaki
 [2016-08-22 14:21 UTC] daniel-php at easetechnology dot co dot uk
Additionally, utf_encode and utf8_decode appear to be part of the XML extension, and it shouldn't be necessary to include an XML parser just for two character conversion functions.
 [2017-10-24 08:02 UTC]
-Status: Assigned +Status: Open -Assigned To: yohgaki +Assigned To:
 [2018-08-26 16:38 UTC]
-Status: Open +Status: Suspended
 [2018-08-26 16:38 UTC]
Deprecating existing functions requires the RFC process.  There is
already a respective RFC[1], albeit it seems to have been
abandoned.  Anyhow, for the time being, I'm suspending this

Note also that utf8_decode() and utf8_encode() are no longer part
of the XML extension, but are standard functions as of PHP

[1] <>
[2] <>
PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Sat Sep 26 21:01:23 2020 UTC