[whatwg] API for encoding/decoding ArrayBuffers into text

NARUSE, Yui naruse at airemix.jp
Thu Mar 22 07:37:24 PDT 2012


2012/3/22 Anne van Kesteren <annevk at opera.com>:
> As for the API, how about:
>
>  enc = new Encoder("euc-kr")
>  string1 = enc.encode(bytes1)
>  string2 = enc.encode(bytes2)
>  string3 = enc.eof() // might return empty string if all is fine
>
> And similarly you would have
>
>  dec = new Decoder("shift_jis")
>  bytes = dec.decode(string)
>
> Or alternatively you could have a single object that exposes both encode()
> and decode() and tracks state for both:
>
>  enc = new Encoding("gb18030")
>  bytes1  = enc.decode(string1)
>  string2 = enc.encode(bytes2)

Usually, strings are encoded to bytes.
Therefore that encode/decode methods should be reversed like:

 enc = new Encoding("gb18030")
 bytes1  = enc.encode(string1)
 string2 = enc.decode(bytes2)

Or if it may cause confusion use getBytes/getChars like Java and C#.
http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
http://msdn.microsoft.com/en-us/library/system.text.encoder(v=vs.110).aspx#Y1873
http://msdn.microsoft.com/en-us/library/system.text.Decoder(v=vs.110).aspx#Y1873

 enc = new Encoding("gb18030")
 bytes1  = enc.getBytes(string1)
 string2 = enc.getChars(bytes2)

-- 
NARUSE, Yui  <naruse at airemix.jp>



More information about the whatwg mailing list