title: Is it safe to encode and decode in c#?
body: <p>In c# I can encode binary data by <code>Encoding.UTF8.GetString()</code> and later convert
  it back by <code>binary = Encoding.UTF8.GetBytes()</code>.</p>
  
  <p>I expect that the result should be my original binary data in any case - no exception.</p>
  
  <p>But is it true in any case?</p>
  
  <p>Or does it depend on the specific behaviour of the <code>UTF8</code> character set?</p>
  
  <p>Or should I better use <code>Encoding.ASCII.GetString()</code> and <code>Encoding.ASCII.GetBytes()</code>?</p>
  
  <p>If anybody knows what <code>Encoding</code> exactly does (how it treats special characters or special bytes) then, please,  give me advice.</p>