diff --git a/src/applications/files/document/PhabricatorTextDocumentEngine.php b/src/applications/files/document/PhabricatorTextDocumentEngine.php --- a/src/applications/files/document/PhabricatorTextDocumentEngine.php +++ b/src/applications/files/document/PhabricatorTextDocumentEngine.php @@ -70,10 +70,18 @@ $encoding = $this->getEncodingConfiguration(); if ($encoding !== null) { if (function_exists('mb_convert_encoding')) { - $content = mb_convert_encoding($content, 'UTF-8', $encoding); - $this->encodingMessage = pht( - 'This document was converted from %s to UTF8 for display.', - $encoding); + try { + $content = mb_convert_encoding($content, 'UTF-8', $encoding); + $this->encodingMessage = pht( + 'This document was converted from %s to UTF8 for display.', + $encoding); + } catch (Throwable $ex) { + $message = $ex->getMessage(); + phlog(pht('mb_convert_encoding(): Illegal character encoding %s '. + 'detected for documented %s.', + $encoding, + $ref->getName())); + } } else { $this->encodingMessage = pht( 'Unable to perform text encoding conversion: mbstring extension '.