2017-05-22 30 views
0

私は安心してAPIをテストしています。文字列をエンコーディング形式に変換する方法

apiの予想結果フォーマットの1つは、"Store <b>"+StoreName+"</b> created successfully"のようなものです。

実際の結果にはいくつかのエンコーディングがありますが、どのエンコーディングが使用されているのかわかりません。

例:店舗名は「abc&*()_-+=~/?'abc

で、私はStore <b>abc&*()_-+=~/?'abc</b> created successfully

として結果を期待していますが、私が予想比較するように、私の期待される結果をエンコードする方法Store \u003cb\u003eabc\u0026*()_-+\u003d~/?\u0027abc\u003c/b\u003e created successfully"

として来ています実際のところ

変換が1か所で行われるため、期待される結果のみを変換したい。

は、次のように私は解決策を持って、期待される結果に実際の結果を変換する:

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 successfully created"は、 'org.apache.commons.lang3.StringEscapeUtilsを使って通常に変換されます。 unescapeJava( "Asset \\ u003cb \\ u003eNNN \\ u0026 \\ u003d \\ u0027NN(ブルースター)\\ u003c/b \\ u003eは正常に作成されました") 'しかし、私は一般的なものにしたいと思っています。その方法だけを使って、実際のメッセージフォーマットに予想されるメッセージを変換したいのですが、どうすればよいか分かりません。 –

答えて

1

実際、いくつかのユーティリティを含むオープンソースライブラリを作成しました。そのうちの1つは、UnicodeシーケンスをStringに変換し、逆も同様です。私はそれが非常に便利だとわかった。

クラスStringUnicodeEncoderDecoderは、Unicode文字と その逆の順序に(任意の言語で) 文字列に変換することができますメソッドがあります。ここではUnicodeのコンバータについては、このライブラリーについての記事からの引用です。例えば、文字列の "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

返信いただきありがとうございます。実際には完全な文字列はUnicodeに変換されません。結果 '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は正常に作成されました ")'しかし、私はジェネリックです、期待された結果は、メソッドののみを使用するので、私は実際のメッセージ形式に予想されるメッセージを変換したいです。どのように行うかわからない –

関連する問題