diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,16 @@
 
+5.32
+----
+
+New features:
+ * Meta-PageUp and Meta-PageDown are now supported (#193)
+ * Added `supportsItalics` and `supportsStrikethrough` functions to
+   check for feature support in terminfo
+
+Bug fixes:
+ * Detect utf-8 mode in `LANG` regardless of case (thanks Emeka
+   Nkurumeh)
+
 5.31
 ----
 
diff --git a/src/Graphics/Vty/Input/Terminfo.hs b/src/Graphics/Vty/Input/Terminfo.hs
--- a/src/Graphics/Vty/Input/Terminfo.hs
+++ b/src/Graphics/Vty/Input/Terminfo.hs
@@ -86,8 +86,10 @@
 -- | Esc, meta-esc, delete, meta-delete, enter, meta-enter.
 specialSupportKeys :: ClassifyMap
 specialSupportKeys =
-    [ -- special support for ESC
-      ("\ESC",EvKey KEsc []), ("\ESC\ESC",EvKey KEsc [MMeta])
+    [ ("\ESC\ESC[5~",EvKey KPageUp [MMeta])
+    , ("\ESC\ESC[6~",EvKey KPageDown [MMeta])
+    -- special support for ESC
+    , ("\ESC",EvKey KEsc []), ("\ESC\ESC",EvKey KEsc [MMeta])
     -- Special support for backspace
     , ("\DEL",EvKey KBS []), ("\ESC\DEL",EvKey KBS [MMeta])
     -- Special support for Enter
diff --git a/src/Graphics/Vty/Output/Interface.hs b/src/Graphics/Vty/Output/Interface.hs
--- a/src/Graphics/Vty/Output/Interface.hs
+++ b/src/Graphics/Vty/Output/Interface.hs
@@ -101,6 +101,22 @@
     , ringTerminalBell :: IO ()
       -- | Returns whether the terminal has an audio bell feature.
     , supportsBell :: IO Bool
+      -- | Returns whether the terminal supports italicized text.
+      --
+      -- This is terminal-dependent and should make a best effort to
+      -- determine whether this feature is supported, but even if the
+      -- terminal advertises support (e.g. via terminfo) that might not
+      -- be a reliable indicator of whether the feature will work as
+      -- desired.
+    , supportsItalics :: IO Bool
+      -- | Returns whether the terminal supports strikethrough text.
+      --
+      -- This is terminal-dependent and should make a best effort to
+      -- determine whether this feature is supported, but even if the
+      -- terminal advertises support (e.g. via terminfo) that might not
+      -- be a reliable indicator of whether the feature will work as
+      -- desired.
+    , supportsStrikethrough :: IO Bool
     }
 
 displayContext :: Output -> DisplayRegion -> IO DisplayContext
diff --git a/src/Graphics/Vty/Output/Mock.hs b/src/Graphics/Vty/Output/Mock.hs
--- a/src/Graphics/Vty/Output/Mock.hs
+++ b/src/Graphics/Vty/Output/Mock.hs
@@ -48,6 +48,8 @@
             , releaseDisplay = return ()
             , ringTerminalBell = return ()
             , supportsBell = return False
+            , supportsItalics = return False
+            , supportsStrikethrough = return False
             , setDisplayBounds = const $ return ()
             , displayBounds = return r
             , outputByteBuffer = \bytes -> do
diff --git a/src/Graphics/Vty/Output/TerminfoBased.hs b/src/Graphics/Vty/Output/TerminfoBased.hs
--- a/src/Graphics/Vty/Output/TerminfoBased.hs
+++ b/src/Graphics/Vty/Output/TerminfoBased.hs
@@ -168,6 +168,10 @@
                 sendCap setDefaultAttr []
                 maybeSendCap cnorm []
             , supportsBell = return $ isJust $ ringBellAudio terminfoCaps
+            , supportsItalics = return $ (isJust $ enterItalic (displayAttrCaps terminfoCaps)) &&
+                                         (isJust $ exitItalic (displayAttrCaps terminfoCaps))
+            , supportsStrikethrough = return $ (isJust $ enterStrikethrough (displayAttrCaps terminfoCaps)) &&
+                                               (isJust $ exitStrikethrough (displayAttrCaps terminfoCaps))
             , ringTerminalBell = maybeSendCap ringBellAudio []
             , reserveDisplay = do
                 -- If there is no support for smcup: Clear the screen
diff --git a/src/Graphics/Vty/Output/XTermColor.hs b/src/Graphics/Vty/Output/XTermColor.hs
--- a/src/Graphics/Vty/Output/XTermColor.hs
+++ b/src/Graphics/Vty/Output/XTermColor.hs
@@ -17,6 +17,7 @@
 
 import Control.Monad (void, when)
 import Control.Monad.Trans
+import Data.Char (toLower)
 import Data.IORef
 
 import System.Posix.IO (fdWrite)
@@ -92,9 +93,9 @@
 utf8Active :: IO Bool
 utf8Active = do
     let vars = ["LC_ALL", "LANG", "LC_CTYPE"]
-    results <- catMaybes <$> mapM getEnv vars
-    let matches = filter ("UTF8" `isInfixOf`) results <>
-                  filter ("UTF-8" `isInfixOf`) results
+    results <- map (toLower <$>) . catMaybes <$> mapM getEnv vars
+    let matches = filter ("utf8" `isInfixOf`) results <>
+                  filter ("utf-8" `isInfixOf`) results
     return $ not $ null matches
 
 -- | Enable bracketed paste mode:
diff --git a/vty.cabal b/vty.cabal
--- a/vty.cabal
+++ b/vty.cabal
@@ -1,5 +1,5 @@
 name:                vty
-version:             5.31
+version:             5.32
 license:             BSD3
 license-file:        LICENSE
 author:              AUTHORS
