我正在爲我的Grails應用編寫測試,並且在我的應用程序中發現了一個「錯誤」 - 至少我認爲它是我的應用程序。來自Google地理編碼的不同編碼/響應-API
我的要求是這樣的:
http://maps.googleapis.com/maps/api/geocode/json?address=Karlsruhe+76131+Tullastraße+17&sensor=false
和響應包含我的州/省(我不知道確切的翻譯 - 我來自德國和它分成16個較小的「國家」 - 叫做「Bundesland」)
我的狀態被稱爲「Baden-Württemberg」,在瀏覽器的響應中就是這樣。
在我的應用程序中,我使用URL和BufferedReader(帶有InputStreamReader)來獲取響應。
我試圖斷言,來自瀏覽器的響應等於我從我的代碼中的URL連接得到的響應。
但是 - 問題出在這裏 - 它們有所不同。我發現的唯一區別在於我的國家的名字。
當我從瀏覽器得到的迴應之前提到的含有「巴登 - 符騰堡州」,但我通過我的代碼得到的迴應只包含「巴登 - 符騰堡」 - 在ü切換與常規ü
這裏是我的代碼:
URLConnection connection = new URL(url).openConnection()
BufferedReader br = new BufferedReader(new InputStreamReader(connection.content, "UTF-8"))
StringBuffer connectionResponse = new StringBuffer()
while (br.ready()) {
connectionResponse.append(br.readLine())
}
br.close()
return connectionResponse.toString()
我的搜索導致我傳遞一個字符集的InputStreamReader中的選項 - 因爲我希望它是UTF-8我用這個字符集,但它不解決這個bug。
我只是困惑,爲什麼這是可能的。
我應該在哪裏看?我沒那麼有經驗,所以我很無知
編輯︰ 我測試了一些,如果我搜索與包含元音變音的街道(「Bärenweg」或「Baerenweg」將是一個例子),兩個迴應(代碼和瀏覽器)包含正確的值:Bärenweg。似乎只有國家受此影響。
我應該馬上聯繫Google嗎?通過這個新測試,我不確定我是否可以做些什麼
在google api的情況下並不重要,因爲它總是返回正確的值。不過,我修復了它 - 看看我的回覆 – Zobbl
Upvote的解決方案過程。 –