nguyenducnhaty / google-http-java-client

Automatically exported from code.google.com/p/google-http-java-client
0 stars 0 forks source link

Detect Unicode encoding for GSON library #6

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
External references, such as a standards document, or specification?

http://blog.publicobject.com/2010/08/handling-byte-order-mark-in-java.html

copied here (in case that blog goes away):

  public Reader inputStreamToReader(InputStream in) throws IOException {
    in.mark(3);
    int byte1 = in.read();
    int byte2 = in.read();
    if (byte1 == 0xFF && byte2 == 0xFE) {
      return new InputStreamReader(in, "UTF-16LE");
    } else if (byte1 == 0xFF && byte2 == 0xFF) {
      return new InputStreamReader(in, "UTF-16BE");
    } else {
      int byte3 = in.read();
      if (byte1 == 0xEF && byte2 == 0xBB && byte3 == 0xBF) {
        return new InputStreamReader(in, "UTF-8");
      } else {
        in.reset();
        return new InputStreamReader(in);
      }
    }
  }

Java environments (e.g. Java 6, Android 2.3, App Engine 1.4.3, or All)?

All.

Please describe the feature requested.

Currently the GSON library implementation only supports UTF-8.  The algorithm 
above could potentially be used for supporting the other 3 Unicode encodings 
supported by the JSON specifications.

Original issue reported on code.google.com by yan...@google.com on 11 May 2011 at 6:05

GoogleCodeExporter commented 9 years ago
Issue 12 has been merged into this issue.

Original comment by yan...@google.com on 8 Jun 2011 at 9:30

GoogleCodeExporter commented 9 years ago
More references on the topic:

http://tools.ietf.org/html/rfc4627#section-3
http://unicode.org/faq/utf_bom.html#BOM
http://en.wikipedia.org/wiki/Byte_order_mark

Original comment by yan...@google.com on 31 May 2012 at 1:57