2017-05-22 60 views
0

我正在使用rest-assured來測試api。如何將字符串轉換爲編碼格式

API的預期結果的格式之一是像"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"

如何編碼我期望的結果,所以我比較期待與實際。

我只想轉換預期結果,因爲轉換將在一個地方

要轉換的實際結果與預期結果,我有解決方案如下:

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

謝謝你的回覆,實際上整個字符串不能轉換成Unicode,只有幾個字符越來越轉換。實際結果'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

其實,我寫了一個包含一些實用程序的開源庫。其中之一是將Unicode序列轉換爲字符串,反之亦然。我發現它非常有用。下面是關於該庫的有關Unicode轉換文章報價:

類StringUnicodeEncoderDecoder具有可轉換 字符串(在任何語言)爲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〜/?\ u0027abc \ u003c/B \ u003e成功創建 「',通過使用轉化爲正常'org.apache.commons.lang3.StringEscapeUtils.unescapeJava(」 資產\\ u003cb \\ u003eNNN \\ u0026 \\ u003d \\ u0027NN(藍星)\\ u003c/b \\ u003e已成功創建「)',但我想說的是通用的,預期的結果將得到僅使用方法的,所以我想期望的消息轉換成實際的消息格式。但我我不知道該怎麼辦 –

相關問題