2017-02-27 65 views
-1

我想在我的Java應用程序中使用StringEscapeUtils.escapeHtml4轉義字符串對象。我正在使用commons-lang3-3.5.jar庫。問題Java StringEscapeUtils.escapeHtml4()

下面是我試圖做的格式 -

StringEscapeUtils.escapeHtml4("user001") 

當我在控制檯打印,輸出看起來喜歡 - "user001"

其實我不希望我的雙QUOT被轉換成轉義字符在這裏。因爲在轉義字符串之後,我的程序不會將其識別爲有效的字符串,並且我得到的格式不正確的JSon。有沒有辦法處理這個或更好的方法?提前致謝。

+1

如果您在JSON中使用它,爲什麼要轉義HTML?轉義HTML用於在HTML中使用字符串。 – RealSkeptic

+1

我無法使用commons-lang3的3.5版來重現您的問題。 您能與我們分享更多細節嗎? – SaWo

+0

'escapeHTML4'對我來說工作正常,除非字符串是'「user001 \」「' – Magnus

回答

0

爲什麼不使用escapeJava()而不是escapeHtml4()

escapeJava(String input)
逃逸使用 Java的String規則字符串中的字符。

它不會將您的雙引號轉換爲",而只是使用反斜槓(這在JSON中可接受)進行轉義。


您還可以檢查

escapeJson
公共靜態最後絃樂escapeJson(字符串輸入)

越獄使用JSON字符串規則在字符串中的字符。

將其找到的任何值轉換爲其Json字符串形式。正確處理 引號和控制字符(TAB,回車,CR,FF等)

+0

@拉曼 - 謝謝你,否則不打印引號。我想要防止在我的JSon輸入中腳本注入的機會。我應該用什麼逃避Java()或escapeJson()? –

+0

@RashmiRanjanmallick他們兩者幾乎相似,唯一的區別是在Json中,正斜槓(/)是逃脫的。但是,如果您打算將它用於某個JSON解析器,則可以使用它們中的任何一個,那麼最好使用'escapeJson()'方法。 –

0

的問題是不是與StringEscapeUtils.escapeHtml4()。問題可能是您嘗試使用純字符串,您的代碼需要JSON。

+0

謝謝。我想要防止在我的JSon輸入中腳本注入的機會。 escapeJson()會幫助我嗎? –

+0

您能和我們分享更多信息嗎?我對使用StringEscapeUtils.escapeHtml4(「user001」)方法的結果部分感興趣。 – SaWo