|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #80671 mb_convert_encoding() throws ValueError on invalid encoding
Submitted: 2021-01-26 07:37 UTC Modified: 2021-01-26 19:03 UTC
From: alec at alec dot pl Assigned:
Status: Open Package: mbstring related
PHP Version: 8.0.1 OS:
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
Block user comment
Status: Assign to:
Bug Type:
From: alec at alec dot pl
New email:
PHP Version: OS:


 [2021-01-26 07:37 UTC] alec at alec dot pl
PHP Fatal error:  Uncaught ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "WINDOWS-1253".

Before PHP8 it never threw even a warning, so to me it looks like a BC break which:
1. should throw a warning in PHP 8.0, before it could switch to a fatal error in 8.1.
2. should be mentioned in the migration guide and the documentation.


Test script:
mb_convert_encoding("test", "UTF-8", "WINDOWS-1253");


Add a Patch

Pull Requests

Add a Pull Request


AllCommentsChangesGit/SVN commitsRelated reports
 [2021-01-26 07:39 UTC] alec at alec dot pl
BTW, regarding the error message, the encoding is not invalid, it is unsupported.
 [2021-01-26 08:50 UTC]
-Type: Bug +Type: Documentation Problem
 [2021-01-26 13:34 UTC]
-Summary: mb_convert_encoding() throws ValueError unexpectedly +Summary: mb_convert_encoding() throws ValueError on invalid encoding
 [2021-01-26 13:34 UTC]
As expected, this already threw a warning since at least PHP 4.3:

A changelog entry that this throws a ValueError exception since PHP 8.0 is missing through.
 [2021-01-26 18:52 UTC] alec at alec dot pl
All right, it looks I was mistaken about no warning in earlier versions, but since Roundcube exists I've never saw such a warning (and we're dealing with all kinds of "invalid" encodings). Maybe that has something to do with removal of some code path that was using iconv() before mbstring methods.

So, it is a documentation problem.
PHP Copyright © 2001-2021 The PHP Group
All rights reserved.
Last updated: Mon Apr 19 16:01:26 2021 UTC