Ilguiz (eel ghEEz) Latypov (ghee) wrote,
Ilguiz (eel ghEEz) Latypov
ghee

Java codecs

What a shame! I spent few hours trying to find a decoder for Java string literals.

It turned out the Apache Commons Lang project, not Sun, provides the decoder and the encoder. I remembered its value from the time I was looking for an XML encoder to use in my JSP page.

http://commons.apache.org/lang/api/org/apache/commons/lang/StringEscapeUtils.html

http://svn.apache.org/viewvc/commons/proper/lang/trunk/src/java/org/apache/commons/lang/StringEscapeUtils.java?view=markup

I started my search when I realized that a brute force approach such as s.replace("\\\\", "\\").replace("\\n", "\n") would fail to correctly decode a legitimate sequence of 3 characters '\\', '\\' and 'n' into a string of 2 characters '\\' and 'n'. This is because multiple .replace() invocations apply per-character decoding more than once, which is wrong.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments