我使用 GET 請求通過 HttpConnection 對象獲取西班牙網站代碼。當我通過控制臺(網站代碼)打印輸出時,西班牙字符不存在。取而代之的是一些“怪異”的角色。假設網站編碼是“UTF-8”(),但我不知道它如何處理西班牙字符(á,?等)我嘗試了很多東西,比如在 setRequestProperty 方法中以 UTF-8 定義字符集屬性,從 char 數組構建字符串,使用 UTF-8 特定編碼從字節(jié)數組構建字符串,因為我在某處讀到Java String 類在默認情況下以 UTF-16 構建字符串,并且沒有。它仍然給我所有那些奇怪的角色。我還使用 ISO-8859-1 編碼嘗試了同樣的事情,結果同樣糟糕,而且也沒有任何編碼規(guī)范。好的,我知道這些字符確實遵循一種模式,我可以創(chuàng)建一個類來“翻譯”它們,但我很確定在那之前還有更好的選擇。String myMethod() { con.setRequestMethod("GET"); con.setRequestProperty("User-Agent", "Mozilla/5.0"); con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); con.setUseCaches(false); con.setDoInput(true); reader = new BufferedReader(new InputStreamReader(con.getInputStream(), "UTF-8")); return reader.lines().collect(Collectors.joining("\n"));}這就是發(fā)生的事情的一個例子。網站上寫的那句話(我想得到):“四季秋季防護裝備”我實際上從我的輸出中得到的句子:"Equipo de protección otoño de toda la estaciòn"
1 回答

千巷貓影
TA貢獻1829條經驗 獲得超7個贊
我使用了 Apache Commons ( https://mvnrepository.com/artifact/commons-lang/commons-lang/2.6 )中的 StringEscapeUtils 。
String dirty = "Equipo de protección otoño de toda la estaciòn";
String clean = StringEscapeUtils.unescapeHtml(dirty);
輸出:四季秋季防護裝備
希望這可以幫助。祝你好運。如果您有任何后續(xù)查詢,請發(fā)表評論。
添加回答
舉報
0/150
提交
取消