PHP-Try-Catch für die Funktion mb_convert_encoding() unwirksam [Duplikat]Php

PHP-Programmierer chatten hier
Anonymous
 PHP-Try-Catch für die Funktion mb_convert_encoding() unwirksam [Duplikat]

Post by Anonymous »

Ich habe den folgenden Code in einem CLI-PHP-Skript. (Der Wert in $mime_encoded_text stammt tatsächlich aus einem Nachrichtenheader, aber der Klarheit halber habe ich ihn hier vereinfacht):

Code: Select all

$mime_encoded_text = "This viral =?x-unknown?B?4oCYdmFuaWxsYSBsYXR0ZeKAmQ==?= hack is slimming waistlines" ;

$decodedElements = imap_mime_header_decode($mime_encoded_text);
$decodedString = '';
foreach ($decodedElements as $element) {
// Convert the text to UTF-8 from its original charset, if necessary
if (strtolower($element->charset) != 'utf-8' && $element->charset != 'default') {
try {
$decodedString .= mb_convert_encoding($element->text, 'UTF-8', $element->charset);
} catch (exception $e) {
printf("'%s' trying to decode '%s'\n", $e->getMessage(), $mime_encoded_text) ;
}
} else {
$decodedString .= $element->text;
}
}
Wenn ich diesen Code ausführe, erhalte ich:

Code: Select all

PHP Fatal error:  Uncaught ValueError: mb_convert_encoding(): Argument #3 ($from_encoding) contains invalid encoding "x-unknown" in /home/dennis/x:14
Stack trace:
#0 /home/dennis/x(14): mb_convert_encoding()
#1 {main}
thrown in /home/dennis/x on line 14

> php --version
PHP 8.3.6 (cli) (built: Jul 14 2025 18:30:55) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.6, Copyright (c) Zend Technologies
with Zend OPcache v8.3.6, Copyright (c), by Zend Technologies
with Xdebug v3.2.0, Copyright (c) 2002-2022, by Derick Rethans
Dies schlägt in der Zeile mb_convert_encoding fehl, wodurch der Versuch {} Catch {} unwirksam wird.
Wie kann ich diese Nachricht abfangen, damit das Skript nicht fehlschlägt?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post