Index: tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java
===================================================================
--- tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java	(revision 1324755)
+++ tika-parsers/src/test/java/org/apache/tika/parser/html/HtmlParserTest.java	(working copy)
@@ -248,6 +248,22 @@
     }
 
     /**
+     * Test case for TIKA-892
+     * @see <a href="https://issues.apache.org/jira/browse/TIKA-892">TIKA-892</a>
+     */
+    public void testHtml5Charset() throws Exception {
+        String test =
+            "<html><head><meta charset=\"ISO-8859-1\" />"
+            + "<title>the name is \u00e1ndre</title>"
+            + "</head><body></body></html>";
+        Metadata metadata = new Metadata();
+        new HtmlParser().parse(
+                new ByteArrayInputStream(test.getBytes("UTF-8")),
+                new BodyContentHandler(), metadata, new ParseContext());
+        assertEquals("ISO-8859-1", metadata.get(Metadata.CONTENT_ENCODING));
+    }
+
+    /**
      * Test case for TIKA-334
      * @see <a href="https://issues.apache.org/jira/browse/TIKA-334">TIKA-334</a>
      */
@@ -404,8 +420,8 @@
         assertFalse(content.contains("boilerplate"));
         assertFalse(content.contains("footer"));
     }
-    
-    
+   
+   
     /**
      * Test case for TIKA-478. Don't emit <head> sub-elements inside of <body>.
      * @see <a href="https://issues.apache.org/jira/browse/TIKA-478">TIKA-478</a>
Index: tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java
===================================================================
--- tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java	(revision 1324755)
+++ tika-parsers/src/main/java/org/apache/tika/parser/html/HtmlParser.java	(working copy)
@@ -68,6 +68,8 @@
                     "(?is)<meta\\s+http-equiv\\s*=\\s*['\\\"]\\s*" +
                     "Content-Type['\\\"]\\s+content\\s*=\\s*['\\\"]" +
                     "([^'\\\"]+)['\\\"]");
+    private static final Pattern META_CHARSET_PATTERN = Pattern.compile(
+                    "(?is)<meta\\s+charset\\s*=\\s*['\\\"]([^'\\\"]+)['\\\"]");
 
     /**
      * HTML schema singleton used to amortize the heavy instantiation time.
@@ -92,6 +94,7 @@
         stream.reset();
 
         if (bufferSize != -1) {
+            String charset = null;
             String metaString = new String(buffer, 0, bufferSize);
             Matcher m = HTTP_EQUIV_PATTERN.matcher(metaString);
             if (m.find()) {
@@ -101,15 +104,28 @@
                 for (String attr : attrs) {
                     String[] keyValue = attr.trim().split("=");
                     if ((keyValue.length == 2) && keyValue[0].equalsIgnoreCase("charset")) {
-                        // TIKA-459: improve charset handling.
-                    	String charset = CharsetUtils.clean(keyValue[1]);
-                    	if (CharsetUtils.isSupported(charset)) {
-                    	    metadata.set(Metadata.CONTENT_ENCODING, charset);
-                    	    return charset;
-                    	}
+                        charset = keyValue[1];
                     }
                 }
             }
+
+            // TIKA-892: HTML5 meta charset tag
+            if (charset == null) {
+                m = META_CHARSET_PATTERN.matcher(metaString);
+                if (m.find()) {
+                    charset = m.group(1);
+                }
+            }
+
+            if (charset != null) {
+                // TIKA-459: improve charset handling.
+                charset = CharsetUtils.clean(charset);
+
+                if (CharsetUtils.isSupported(charset)) {
+                    metadata.set(Metadata.CONTENT_ENCODING, charset);
+                    return charset;
+                }
+            }
         }
 
         // No (valid) charset in a meta http-equiv tag, see if it's in the passed content-encoding
