2017-02-27 9 views
-1

StringEscapeUtils.escapeHtml4을 사용하여 Java 응용 프로그램에서 문자열 객체를 이스케이프 처리하려고합니다. 나는 commons-lang3-3.5.jar 라이브러리를 사용하고 있습니다.Java StringEscapeUtils.escapeHtml4() 문제

StringEscapeUtils.escapeHtml4("user001") 

내가 콘솔에 인쇄, 출력이 "user001"

실제로 내 이중 quot가로 변환하지 않으려는 같은 - 보이는 - 아래

내가 뭘하려고 형식입니다 여기에서 이스케이프 문자. 문자열을 이스케이프 처리 한 후 내 프로그램에서이 문자열을 유효한 문자열로 인식하지 못하여 잘못된 JSon이 발생합니다. 이 방법이나 더 나은 방법을 처리 할 수있는 방법이 있습니까? 미리 감사드립니다.

+1

JSON에서 HTML을 사용하는 경우 왜 HTML을 이스케이프 처리합니까? HTML 이스케이프는 HTML에서 문자열을 사용하기위한 것입니다. – RealSkeptic

+1

버전 3.5의 commons-lang3을 사용하여 문제를 재현 할 수 없습니다. 자세한 내용을 알려주십시오. – SaWo

+0

'escapeHTML4'는 나에게 잘 돌아가고 문자열이''\ "user001 \" "'' – Magnus

답변

0

escapeHtml4() 대신 escapeJava()을 사용하지 않는 이유는 무엇입니까?

escapeJava(String input)
탈출 자바 문자열 규칙을 사용하여 문자열의 문자.

큰 따옴표는 "으로 변환되지 않지만 단순히 백 슬래시 (JSON에서 사용 가능)를 사용하여 이스케이프 처리됩니다.


또한 확인할 수 있습니다

escapeJson
공공 정적 최종 문자열 escapeJson (문자열 입력)

탈출을 JSON 문자열 규칙을 사용하여 문자열의 문자.

찾은 값을 Json String 형식으로 이스케이프 처리합니다. 시세 및 제어 문자 (탭, 백 슬래시, CR, FF 등)

+0

@ Raman-Thanks가 아니면 따옴표를 출력하지 않습니다. 내 JSon 입력 내에서 스크립트 삽입의 기회를 막고 싶다. 이 escapeJava() 또는 escapeJson()에서 무엇을 사용해야합니까? –

+0

@RashmiRanjanmallick 그들은 둘 다 거의 비슷합니다. Json에서는 앞으로 슬래시 (/)가 이스케이프됩니다. 그러나 이들 중 하나를 사용할 수는 있지만 일부 JSON 구문 분석기에서 사용하려는 경우에는'escapeJson()'메서드를 사용하는 것이 좋습니다. –

0

이 문제가 StringEscapeUtils.escapeHtml4()하지입니다 제대로 을 다룹니다. 문제는 코드에서 JSON이 필요한 일반 문자열을 사용하려고하는 것일 수 있습니다.

+0

감사합니다. 내 JSon 입력 내에서 스크립트 삽입의 기회를 막고 싶다. 도망 갈 것인가? –

+0

더 자세한 정보를 알려주십시오. StringEscapeUtils.escapeHtml4 ("user001") 메서드의 결과를 사용하는 부분에 관심이 있습니다. – SaWo