[prev in list] [next in list] [prev in thread] [next in thread] 

List:       velocity-dev
Subject:    [jira] [Commented] (VELTOOLS-184) EscapeTool: add a json method, or a javascript method with a secon
From:       "Maurice Perry (Jira)" <dev () velocity ! apache ! org>
Date:       2022-11-18 21:55:00
Message-ID: JIRA.13285320.1581684360000.120439.1668808500023 () Atlassian ! JIRA
[Download RAW message or body]


    [ https://issues.apache.org/jira/browse/VELTOOLS-184?page=com.atlassian.jira.plugi \
n.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: dev-unsubscribe@velocity.apache.org
For additional commands, e-mail: dev-help@velocity.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic