我正在为我的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的解决方案过程。 –