2017-05-22 3 views
0

나는 API를 테스트하기 위해 안심 테스트를 사용하고 있습니다.문자열을 인코딩 형식으로 변환하는 방법

api 예상 결과 형식 중 하나는 "Store <b>"+StoreName+"</b> created successfully"입니다.

실제 결과에는 인코딩이 포함되어 있지만 사용하는 인코딩이 확실하지 않습니다.

예 : 상점 이름은 Store <b>abc&*()_-+=~/?'abc</b> created successfully

abc&*()_-+=~/?'abc

후 내가 기대하고 결과 "하지만 난이 예상 비교할 수 있도록 어떻게 내 예상 된 결과를 인코딩하는 Store \u003cb\u003eabc\u0026*()_-+\u003d~/?\u0027abc\u003c/b\u003e created successfully"

로오고있다 실제.

변환이 한 곳에서 이루어지기 때문에 예상 결과 만 변환하려고합니다.

다음과 같이 내가 해결책을 가지고, 예상 된 결과로 실제 결과를 변환하는 :

org.apache.commons.lang3.StringEscapeUtils.unescapeJava("Store \u003cb\u003eabc\u0026*()_-+\u003d~/?\u0027abc\u003c/b\u003e created successfully") 

결과가 Store <b>abc&*()_-+=~/?'abc</b> created successfully

로 올 것이다하지만 난 그 코드에있을 것입니다 때문에 실제 결과 내 예상 결과를 변환 할 단일 장소.

+0

당신이 얻는 것을 유니 코드라고합니다. 동일한 문제가있는 http://stackoverflow.com/q/11145681/5207900을 참조하십시오. – Marteng

+0

도움이 되셨습니까? http://stackoverflow.com/questions/15929686/how-to-decode-unicode-html-by-javascript – GhostCat

+0

답장을 보내 주셔서 감사합니다. 실제로 전체 문자열은 유니 코드로 변환되지 않으며 소수의 문자 만 사용하고 있습니다. 변환. 실제 결과'Store \ u003cb \ u003eabc \ u0026 *() _- + \ u003d ~ /? \ u0027abc \ u003c/b \ u003e created successfully "는 org.apache.commons.lang3.StringEscapeUtils를 사용하여 정상으로 변환됩니다. unescapeJava ("자산 \\ u003cb \\ u003eNNN \\ u0026 \\ u003d \\ u0027NN (블루 스타) \\ u003c/b \\ u003e 성공적으로 만들었습니다")')'하지만 일반화하고 싶습니다. 방법만을 사용하여 실제 메시지 형식으로 예상 메시지를 변환하고 싶습니다. 그러나 어떻게 해야할지 잘 모르겠어요. –

답변

1

사실, 필자는 일부 유틸리티가 들어있는 오픈 소스 라이브러리를 작성했습니다. 그 중 하나는 유니 코드 시퀀스를 String으로 변환하고 그 반대도 마찬가지입니다. 나는 그것이 매우 유용하다는 것을 알았다.

클래스 StringUnicodeEncoderDecoder 유니 코드 문자와 바이스 반대의 순서로 (모든 언어)을 문자열을 변환 할 수있는 방법이 있습니다 여기에 유니 코드 변환에 대한이 라이브러리에 대한 기사에서 인용 한 것입니다. 예를 들어 문자열에 "Hello World"가

로 변환됩니다 "\ u0048 \ u0065 \ u006c \ u006c \ u006f \ u0020 \ u0057 \ u006f \ u0072 \ u006c \ u0064"

하고 다시 복원 할 수 있습니다.

다음은 라이브러리의 유틸리티와 라이브러리를 사용하는 방법을 설명하는 전체 기사 링크입니다. Maven 아티팩트 또는 Github의 소스로 제공됩니다. 그것은 매우 사용하기 쉽습니다. Open Source Java library with stack trace filtering, Silent String parsing Unicode converter and Version comparison

+0

답장을 보내 주셔서 감사합니다. 실제로 완전한 문자열은 유니 코드로 변환되지 않고 변환되지 않습니다. 실제 결과'Store \ u003cb \ u003eabc \ u0026 *() _- + \ u003d ~ /?\\ u003abb \ u003c/b \ u003e created successfully "는 org.apache.commons.lang3.StringEscapeUtils.unescapeJava ("Asset \\ u003cb \\ u003eNNN \\ u0026 \\ u003d \\ u0027NN (Blue 별) \\ u003c/b \\ u003e가 성공적으로 만들어졌습니다 ")'하지만 일반 만들고 싶어, 예상 된 결과는 실제 메시지 형식으로 예상 메시지를 변환 할 수 있도록 메서드의 사용 만 얻을 것이다.하지만 난 어떻게해야할지 모르겠다. –

관련 문제