title: Converting string to byte[] returns wrong value (encoding?)
body: <p>I read a <code>byte[]</code> from a file and convert it to a <code>String</code>:</p>
  
  <pre><code>byte[] bytesFromFile = Files.readAllBytes(...);
  String stringFromFile = new String(bytesFromFile, "UTF-8");
  </code></pre>
  
  <p>I want to compare this to another <code>byte[]</code> I get from a web service:</p>
  
  <pre><code>String stringFromWebService = webService.getMyByteString(); 
  byte[] bytesFromWebService = stringFromWebService.getBytes("UTF-8");
  </code></pre>
  
  <p>So I read a <code>byte[]</code> from a file and convert it to a <code>String</code> and I get a <code>String</code> from my web service and convert it to a <code>byte[]</code>. Then I do the following tests:</p>
  
  <pre><code>// works!
  org.junit.Assert.assertEquals(stringFromFile, stringFromWebService);
  
  // fails!
  org.junit.Assert.assertArrayEquals(bytesFromFile, bytesFromWebService);
  </code></pre>
  
  <p><strong>Why does the second assertion fail?</strong></p>