首先,浏览器看到的是:
莨夂、セ讎りヲ
text-indent: -9999px
由于 CSS和覆盖在其上的背景图像,呈现的 html 中显示的内容并不相同。但它就在那里。删除它们将显示文本浏览器正在查看。
开箱即用,解码为 Shift-Jis 应该会给你莨夂、セ讎りヲ?
,但如果你想要与浏览器中相同的结果,你应该使用自定义CharsetDecoder
with IGNORE
:
URL url = new URL( "http://ao.recruit.co.jp/form.html");
BufferedInputStream bis = new BufferedInputStream(url.openStream());
CharsetDecoder decoder = Charset.forName("Shift-Jis").newDecoder();
decoder.onMalformedInput(CodingErrorAction.IGNORE);
decoder.onUnmappableCharacter(CodingErrorAction.IGNORE);
Reader inputReader = new InputStreamReader(bis, decoder);
String result = IOUtils.toString(inputReader);
System.out.print(result);
这将为您提供与浏览器相同的结果。当然,它不会解析图像文件中的文本。