title: UTF-8 is not working for converting byte[] to string
body: <p>I have a qualifier(long value type) in row of H-Base table.</p>
  
  <p>I want to fetch H-Base rows in between of two long numbers. For that I am using following filters.</p>
  
  <p>My filters are like :</p>
  
  <pre><code>long startEpochInDay = 384;
  
  long endEpochInDays = 396;
  
  string startDayFilter = "SingleColumnValueFilter('" + cf + "','" + qualifier + "', &gt;= ,'binary:" + Encoding.UTF8.GetString(HBaseGenericHelper.GetBigEndianByteArray(startEpochInDays)) + "',true,true)";
  
  string endDayFilter = "SingleColumnValueFilter('" + cf + "','" + qualifier + "', &lt; ,'binary:" + Encoding.UTF8.GetString(HBaseGenericHelper.GetBigEndianByteArray(endEpochInDays)) + "',true,true)";
  
  string finalFilter = startDayFilter + " AND " + endDayFilter
  </code></pre>
  
  <p>These filters are working fine with number less than <strong>383</strong>, but fails if number is greater than this number.</p>
  
  <p>I found while debugging while converting long number to Byte array it returns byte array like <strong><em>\0\0\0\0\0\0\1\128</em></strong>.</p>
  
  <p>When last number in byte array is 127 or less, <strong>UTF-8</strong> works fine but as this number becomes 128 or greater than that, <strong>UTF-8</strong> started returning <strong>"?"</strong> for last digit.</p>
  
  <p>If I use following method to encoding byte array to string</p>
  
  <pre><code>Encoding encoding = new UTF8Encoding(true,true);
  string number = encoding.GetString(HBaseGenericHelper.GetBigEndianByteArray(startEpochInDays));
  </code></pre>
  
  <p><strong>UTF-8</strong> is throwing exception while converting byte array(if last digit is 128 or more in byte array) to string in filter.</p>
  
  <p><strong>Exception</strong> - Unable to translate bytes [8B] at index 6 from specified code page to Unicode.</p>
  
  <p>Inner Exception - </p>
  
  <pre><code>at System.Text.DecoderExceptionFallbackBuffer.Throw(Byte[] bytesUnknown, Int32 index)
  at System.Text.DecoderExceptionFallbackBuffer.Fallback(Byte[] bytesUnknown, Int32 index)
  at System.Text.DecoderFallbackBuffer.InternalFallback(Byte[] bytes, Byte* pBytes)
  at System.Text.UTF8Encoding.GetCharCount(Byte* bytes, Int32 count, DecoderNLS baseDecoder)
  at System.String.CreateStringFromEncoding(Byte* bytes, Int32 byteLength, Encoding encoding)
  at System.Text.UTF8Encoding.GetString(Byte[] bytes, Int32 index, Int32 count)
  at System.Text.Encoding.GetString(Byte[] bytes)
  </code></pre>
  
  <p>Thanks in Advance.</p>