AvoidEscapedUnicodeCharacters

Since Checkstyle 5.8

Description

Restricts using Unicode escapes (such as \u221e). It is possible to allow using escapes for non-printable, control characters. Also, this check can be configured to allow using escapes if trail comment is present. By the option it is possible to allow using escapes if literal contains only them.

Properties

name description type default value since
allowEscapesForControlCharacters Allow use escapes for non-printable, control characters. boolean false 5.8
allowByTailComment Allow use escapes if trail comment is present. boolean false 5.8
allowIfAllCharactersEscaped Allow if all characters in literal are escaped. boolean false 5.8
allowNonPrintableEscapes Allow use escapes for non-printable, whitespace characters. boolean false 5.8

Examples

To configure the check:

<module name="Checker">
  <module name="TreeWalker">
    <module name="AvoidEscapedUnicodeCharacters"/>
  </module>
</module>
        

Examples of using Unicode:

String unitAbbrev = "μs";     // OK, perfectly clear even without a comment.
String unitAbbrev = "\u03bcs";// violation, the reader has no idea what this is.
return '\ufeff' + content;    // OK, an example of non-printable,
                              // control characters (byte order mark).
        

An example of how to configure the check to allow using escapes for non-printable, control characters:

<module name="Checker">
  <module name="TreeWalker">
    <module name="AvoidEscapedUnicodeCharacters">
      <property name="allowEscapesForControlCharacters" value="true"/>
    </module>
  </module>
</module>
        

Example of using escapes for non-printable, control characters:

String unitAbbrev = "μs";      // OK, a normal String
String unitAbbrev = "\u03bcs"; // violation, "\u03bcs" is a printable character.
return '\ufeff' + content;     // OK, non-printable control character.
        

An example of how to configure the check to allow using escapes if trail comment is present:

<module name="Checker">
  <module name="TreeWalker">
    <module name="AvoidEscapedUnicodeCharacters">
      <property name="allowByTailComment" value="true"/>
    </module>
  </module>
</module>
        

Example of using escapes if trail comment is present:

String unitAbbrev = "μs";      // OK, a normal String
String unitAbbrev = "\u03bcs"; // OK, Greek letter mu, "s"
return '\ufeff' + content;
// -----^--------------------- violation, comment is not used within same line.
        

An example of how to configure the check to allow if all characters in literal are escaped.

<module name="Checker">
  <module name="TreeWalker">
    <module name="AvoidEscapedUnicodeCharacters">
      <property name="allowIfAllCharactersEscaped" value="true"/>
    </module>
  </module>
</module>
        

Example of using escapes if all characters in literal are escaped:

String unitAbbrev = "μs";      // OK, a normal String
String unitAbbrev = "\u03bcs"; // violation, not all characters are escaped ('s').
String unitAbbrev = "\u03bc\u03bc\u03bc"; // OK
String unitAbbrev = "\u03bc\u03bcs";// violation, not all characters are escaped ('s').
return '\ufeff' + content;          // OK, all control characters are escaped
        

An example of how to configure the check to allow using escapes for non-printable whitespace characters:

<module name="Checker">
  <module name="TreeWalker">
    <module name="AvoidEscapedUnicodeCharacters">
      <property name="allowNonPrintableEscapes" value="true"/>
    </module>
  </module>
</module>
        

Example of using escapes for non-printable whitespace characters:

String unitAbbrev = "μs";       // OK, a normal String
String unitAbbrev1 = "\u03bcs"; // violation, printable escape character.
String unitAbbrev2 = "\u03bc\u03bc\u03bc"; // violation, printable escape character.
String unitAbbrev3 = "\u03bc\u03bcs";// violation, printable escape character.
return '\ufeff' + content;           // OK, non-printable escape character.
        

Example of Usage

Violation Messages

All messages can be customized if the default message doesn't suit you. Please see the documentation to learn how to.

Package

com.puppycrawl.tools.checkstyle.checks

Parent Module

TreeWalker