[
https://issues.apache.org/jira/browse/VELTOOLS-184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17636048#comment-17636048
]
Maurice Perry commented on VELTOOLS-184:
----------------------------------------
You misread the RFC: any character can be escaped using a UNICODE hexadecimal
number, but only some can be directly escaped by preceding them with a
backslash:
string = quotation-mark *char quotation-mark
char = unescaped /
escape (
%x22 / ; " quotation mark U+0022
%x5C / ; \ reverse solidus U+005C
%x2F / ; / solidus U+002F
%x62 / ; b backspace U+0008
%x66 / ; f form feed U+000C
%x6E / ; n line feed U+000A
%x72 / ; r carriage return U+000D
%x74 / ; t tab U+0009
%x75 4HEXDIG ) ; uXXXX U+XXXX
escape = %x5C ; \
quotation-mark = %x22 ; "
unescaped = %x20-21 / %x23-5B / %x5D-10FFFF
> EscapeTool: add a json method, or a javascript method with a second parameter
> -----------------------------------------------------------------------------
>
> Key: VELTOOLS-184
> URL: https://issues.apache.org/jira/browse/VELTOOLS-184
> Project: Velocity Tools
> Issue Type: Improvement
> Components: GenericTools
> Affects Versions: 2.x
> Environment: any
> Reporter: Maurice Perry
> Priority: Minor
> Labels: EscapeTool, escape, javascript, json
>
> The string returned by EscapeTool.javascript() method is not alway compliant
> with the JSON syntax. For instance, when the input string contains an
> apostrophe ', a backslash is inserted before it because there is no way for
> the method to know if the string is enclosed with single or double quotes.
> This is not compliant with the JSON syntax, and some JSON parsers will reject
> the string.
> There may be other differences between javascript and JSON strings, but this
> is the one I encountered, and I had to use a workaround.
> This issue can be solved either with a JSON method, or with a second
> javascript method with a second parameter indicating the type of quote used.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]