Doc #80671 [PATCH]: mb_convert_encoding() throws ValueError on invalid encoding
| From: | hallberg.kim@gmail.com | Date: | Sat, 01 May 2021 14:03:14 +0000 |
| Subject: | Doc #80671 [PATCH]: mb_convert_encoding() throws ValueError on invalid encoding | ||
| References: | 1 | Groups: | php.doc.bugs |
| Request: | Send a blank email to doc-bugs+get-18745@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=80671&edit=1
ID: 80671
Patch added by: hallberg.kim@gmail.com
Reported by: alec at alec dot pl
Summary: mb_convert_encoding() throws ValueError on invalid
encoding
Status: Open
Type: Documentation Problem
Package: mbstring related
PHP Version: 8.0.1
Block user comment: N
Private report: N
New Comment:
The following pull request has been associated:
Patch Name: [80671] Update
mb_convert_encoding.
On GitHub: https://github.com/php/doc-en/pull/582
Patch: https://github.com/php/doc-en/pull/582.patch
Previous Comments:
------------------------------------------------------------------------
[2021-01-26 19:03:11] alec at alec dot pl
https://github.com/roundcube/roundcubemail/blob/9b69cce641a8c34c7efcb34628287d4fadf7bbaf/program/lib/Roundcube/rcube_charset.php#L240
explains why I never saw a warning ;)
------------------------------------------------------------------------
[2021-01-26 18:52:48] 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.
------------------------------------------------------------------------
[2021-01-26 13:34:28] nikic@php.net
As expected, this already threw a warning since at least PHP 4.3: https://3v4l.org/5cErI
A changelog entry that this throws a ValueError exception since PHP 8.0 is missing through.
------------------------------------------------------------------------
[2021-01-26 07:39:25] alec at alec dot pl
BTW, regarding the error message, the encoding is not invalid, it is unsupported.
------------------------------------------------------------------------
[2021-01-26 07:37:41] alec at alec dot pl
Description:
------------
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.
Reference: https://github.com/roundcube/roundcubemail/issues/7850
Test script:
---------------
<?php
mb_convert_encoding("test", "UTF-8", "WINDOWS-1253");
------------------------------------------------------------------------
--
Edit this bug report at https://bugs.php.net/bug.php?id=80671&edit=1