diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index c22c8a9..4db52d1 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -8811,16 +8811,24 @@ QString QString::toHtmlEscaped() const
     const int len = length();
     rich.reserve(int(len * 1.1));
     for (int i = 0; i < len; ++i) {
-        if (at(i) == QLatin1Char('<'))
+        const QChar ch = at(i);
+        switch (ch.toLatin1()) {
+        case '<':
             rich += QLatin1String("&lt;");
-        else if (at(i) == QLatin1Char('>'))
+            break;
+        case '>':
             rich += QLatin1String("&gt;");
-        else if (at(i) == QLatin1Char('&'))
+            break;
+        case '&':
             rich += QLatin1String("&amp;");
-        else if (at(i) == QLatin1Char('"'))
+            break;
+        case '"':
             rich += QLatin1String("&quot;");
-        else
-            rich += at(i);
+            break;
+        default:
+            rich += ch;
+            break;
+        }
     }
     rich.squeeze();
     return rich;
