1
我正在使用Play Framework 2.3和WS API下載和解析HTML頁面。對於非英文頁面(例如俄文,希伯來文),我經常會遇到錯誤的編碼。Play框架Ning WS API編碼問題與HTML頁面
下面是一個例子:
def test = Action.async { request =>
WS.url("http://news.walla.co.il/item/2793388").get.map { response =>
Ok(response.body)
}
}
這將返回網頁的HTML。英文字符收到好了。希伯來字母顯示爲Gibberish。 (不僅在渲染時,在內部字符串級別)。像這樣:
<title>29 ×ר×××× ××פ××ת ×ש×××× ×× ×¤××, ××× ×©×××©× ×שר×××× - ×××××! ××ש×ת</title>
來自同一個網站的其他文章可以顯示正常。
使用cURL
與相同的網頁返回完美罰款,這讓我相信問題是在WS API內。
任何想法?
編輯:
我找到了解決辦法in this SO question。
解析響應作爲ISO-8859-1
,然後將它樣如此轉換爲UTF-8
:
Ok(new String(response.body.getBytes("ISO-8859-1") , response.header(CONTENT_ENCODING).getOrElse("UTF-8")))
正確顯示。所以我有一個可行的解決方案,但爲什麼這不是內部完成的?
我相信這樣做了,但默認是'utf-8' 。 – 2014-10-20 17:42:41
您可以發佈問題的答案並順便接受。 – 2014-10-20 17:43:04