X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/ce566bea2a2f5e120cc09808f9d3a4aee79589c2..refs/pull/5681/head:/app/Exceptions/JsonDebugException.php diff --git a/app/Exceptions/JsonDebugException.php b/app/Exceptions/JsonDebugException.php index e8d61305e..1fa52c4a2 100644 --- a/app/Exceptions/JsonDebugException.php +++ b/app/Exceptions/JsonDebugException.php @@ -4,8 +4,9 @@ namespace BookStack\Exceptions; use Exception; use Illuminate\Http\JsonResponse; +use Illuminate\Contracts\Support\Responsable; -class JsonDebugException extends Exception +class JsonDebugException extends Exception implements Responsable { protected array $data; @@ -19,10 +20,13 @@ class JsonDebugException extends Exception } /** - * Covert this exception into a response. + * Convert this exception into a response. + * We add a manual data conversion to UTF8 to ensure any binary data is presentable as a JSON string. */ - public function render(): JsonResponse + public function toResponse($request): JsonResponse { - return response()->json($this->data); + $cleaned = mb_convert_encoding($this->data, 'UTF-8'); + + return response()->json($cleaned); } }