title: Invisible characters in Java Strings
body: <pre><code>String a = "Hello\u200e";
  String b = "Hello\u200f";
  
  System.out.println("a = '" + a + "' and b = '" + b + "' are length "
                       + a.length() + " and " + b.length()
                       + ", equals() is " + a.equals(b));
  </code></pre>
  
  <p>The code in the above code snippet produces the following output.</p>
  
  <blockquote>
    <p>a = 'Hello‎' and b = 'Hello‏' are length 6 and 6, equals() is false</p>
  </blockquote>
  
  <p>Although the value of both <code>a</code> and <code>b</code> displayed on the console is <code>Hello‏</code>, <code>a.equals(b)</code> returns <code>false</code>. How?</p>