2017-09-19 21 views
0

我在使用聲吶檢查代碼質量時收到錯誤。這是錯誤聲吶問題:不應使用依賴於默認系統編碼的類和方法

Classes and methods that rely on the default system encoding should not be used : Remove this use of constructor "InputStreamReader(InputStream)" 

這裏是代碼

private StringBuilder getServerResponse(URLConnection connection) throws IOException { 
     final BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); 
     String inputLine; 
     final StringBuilder response = new StringBuilder(); 
     while ((inputLine = in.readLine()) != null) { 
      response.append(inputLine); 
     } 
     in.close(); 
     return response; 
    } 

我得到下面這行錯誤: -

final BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream())); 

我試圖找到解決辦法,但沒」取得任何成功。 任何指針都會有幫助。

回答

0
final BufferedReader in = new BufferedReader(new InputStreamReader(
connection.getInputStream(), java.nio.charset.Charset.defaultCharset()) 
); 

請嘗試使用此功能。 關於這個問題的更多信息:https://stackoverflow.com/a/22115303

+0

'defaultCharset()'與第一個字符集非常明顯沒有區別。 –

+0

TBH這只是一個解決方法。它會阻止findbugs不報告問題。這就是爲什麼我說「嘗試」。當然,使用UTF將是一個更好的解決方案。 – Yash