[
https://issues.apache.org/jira/browse/VELTOOLS-184?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17636048#comment-17636048
]
Maurice Perry edited comment on VELTOOLS-184 at 11/18/22 9:56 PM:
------------------------------------------------------------------
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{}}}
The single quote is NOT one of them.
was (Author: robbyn):
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]