# Error Prone

Rules to detect constructs that are either broken, extremely confusing or prone to runtime errors.
Table of Contents

## JspEncoding

Since: PMD 4.0

Priority: Medium (3)

A missing ‘meta’ tag or page directive will trigger this rule, as well as a non-UTF-8 charset.

This rule is defined by the following XPath expression:

    //CompilationUnit/Content[
    not(Element[@Name="meta"][
       Attribute[@Name="content"]/AttributeValue[contains(lower-case(@Value),"charset=utf-8")]
    ])
    and
        not(JspDirective[@Name='page']/JspDirectiveAttribute[@Name='contentType'][contains(lower-case(@Value),"charset=utf-8")])
    ]

Example(s):

    Most browsers should be able to interpret the following headers:

    <%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>

    <meta http-equiv="Content-Type"  content="text/html; charset=UTF-8" />

Use this rule by referencing it:

    <rule ref="category/jsp/errorprone.xml/JspEncoding" />