diff --git a/module/VuFind/src/VuFind/Cover/Layer/AbstractTextLayer.php b/module/VuFind/src/VuFind/Cover/Layer/AbstractTextLayer.php
index 1812adbbfd89e23fd6d3d372089e6233d8407f37..d914d59367134fed13e205b6f86b8e83cd9ffdf9 100644
--- a/module/VuFind/src/VuFind/Cover/Layer/AbstractTextLayer.php
+++ b/module/VuFind/src/VuFind/Cover/Layer/AbstractTextLayer.php
@@ -86,6 +86,10 @@ abstract class AbstractTextLayer extends AbstractLayer
     protected function drawText($im, $settings, $text, $y, $font, $fontSize, $mcolor,
         $scolor = false, $align = null
     ) {
+        // In case the text contains non-normalized UTF-8, fix that for proper
+        // display:
+        $text = \Normalizer::normalize($text);
+
         // If the wrap width is smaller than the image width, we want to account
         // for this when right or left aligning to maintain padding on the image.
         $wrapGap = ($settings->width - $settings->wrapWidth) / 2;