getBytesUTF8Encoded

Discussion in 'Java' started by jeanlutrin@yahoo.fr, Mar 2, 2005.

  1. Guest

    Hi all,

    To obtain a byte[] in the UTF-8 encoding from a String
    object, I use a getBytes("UTF-8").

    This is cumbersome...

    Firstly, it is error prone (I mistakenly wrote "UTF-9"
    just today, which more or less decided me to post this
    message).

    Secondly, I'm forced to catch an "unsupported encoding"
    exception. Which is completely dumb, as every J2SE JVM
    is forced, by the specs, to offer the UTF-8 encoding.

    So, I'd like to have a method getBytesUTF8Encoded() in
    the String class. Without parameter, without the need
    to catch a non-sense exception (a method returning
    directly "UTF-8", without needing to pass a prone-to-
    error string parameter, would not be able to throw
    an UnsupportedEncodingException).

    So:

    getBytesUTF8Encoded()
    getUTF8Bytes()

    Whatever.

    But something else than the current cumbersome and
    prone to error getBytes("UTF-8") throwing a phantom
    UnsupportedEncodingException.

    Your thoughts on this?

    Jean



    P.S: I'm not against adding getBytesISOLatin1() method
    etc., as long as it's for encoding *mandatory by the
    specs* to be in the JVM.
    , Mar 2, 2005
    #1
    1. Advertising

  2. Thomas Weidenfeller, Mar 3, 2005
    #2
    1. Advertising

  3. wrote in comp.lang.java.programmer:
    > To obtain a byte[] in the UTF-8 encoding from a String
    > object, I use a getBytes("UTF-8").


    > Firstly, it is error prone (I mistakenly wrote "UTF-9"
    > just today, which more or less decided me to post this
    > message).


    Well, if you're worried about your ability to write string
    constants correctly why don't you use constants for your
    strings?

    public static final String UTF8 = "UTF-8";
    ...
    str.getBytes(UTF8);

    Compiler will take care of typos for you (as long as you make
    sure you've written the constant correctly.

    Also, if that typo was hard to find then there is something
    wrong with your program design. Do you write tests for your
    code at all?

    > So, I'd like to have a method getBytesUTF8Encoded() in
    > the String class.


    Write a helper class with a static method that does what you
    need. It is trivial.

    --
    Antti S. Brax Rullalautailu pitää lapset poissa ladulta
    http://www.iki.fi/asb/ http://www.cs.helsinki.fi/u/abrax/hlb/
    "Disconnect this cable to shorten, re-connect to lengthen."
    -- Instructions on Logitech's USB mouse extension cord.
    Antti S. Brax, Mar 3, 2005
    #3
  4. Guest

    Thanks for your kind answer.

    >... if you're worried about your ability to write string
    > constants correctly...


    no, you're oversimplifying what I explained in details.

    I'm not "worried about my ability to write string constants
    correctly", but thanks for the concern.


    > Also, if that typo was hard to find then there is something
    > wrong with your program design. Do you write tests for your
    > code at all?


    Woaw.

    At first look, that paragraph contains at least two logical fallacies
    (first hint: I never said the typo was hard to find; second
    hint: you're trying to shift the discussion on program design).

    But, on a second look, you weren't really asserting anything: it
    was just a question! Which, ironically, the way you formulated
    it, makes it possible to easily name /three/ logical fallacies
    contained in a single, short, paragraph.

    If you want to talk about "program design", shall we discuss
    the logic behind having to catch an impossible exception?

    What do you think about being forced to catch an exception that
    is, by the specs, impossible to happen?

    Because, you know, quite frankly I don't know which is more
    absurd between having to catch an exception that can never
    happen or Logitech's USB mouse extension cord instructions
    that can be found in your sig (it's scary for sure ;)

    ;)

    See you soon on c.l.j.p.,

    Jean


    P.S : and yes, I do use unit tests, yes, I caught the typo
    on the first launch and, no, a static method in a helper
    class isn't nowhere near as convenient as would be the
    ability to call a method directly on a String object.
    , Mar 4, 2005
    #4
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.

Share This Page