第一步:下载htmlunit的源代码,在com\gargoylesoftware\htmlunit\util目录下有个EncodingSniffer文件,其中就有获取页面编码的情况,大概在626行encoding = encodingtoUpperCase(LocaleROOT);后边添加if(encodingequals("GB2312"))encoding="GBK";
第二步:大概在715行charset = charsettoUpperCase(LocaleROOT);后边添加if(charsetequals("GB2312"))charset="GBK";
原理:gb2312支持的字符集编码比较小,GBK兼容并且大,可以直接转GBK的,所以获取页面的时候,htmlunit本身会调用这个EncodingSniffer类,将其中遇到gb2312的情况,统一变成gbk。
比较麻烦就是要下载htmlunit源码,做个编译后,把生成的EncodingSnifferclass文件覆盖到maven引用的包对应的class文件中。
package test;
import javanetURL;
import netsourceforgehtmlunitcorejsjavascriptScriptableObject;
import junitframeworkTestCase;
import comgargoylesoftwarehtmlunitBrowserVersion;
import comgargoylesoftwarehtmlunitScriptResult;
import comgargoylesoftwarehtmlunitWebClient;
import comgargoylesoftwarehtmlunithtmlHtmlElement;
import comgargoylesoftwarehtmlunithtmlHtmlInput;
import comgargoylesoftwarehtmlunithtmlHtmlPage;
import comgargoylesoftwarehtmlunitjavascripthostEvent;
public class CopyOfTest extends TestCase {
public void testHomePage(){
try{
// 新建一个WebClient对象,此对象相当于浏览器
final WebClient webClient = new WebClient(
BrowserVersionFIREFOX_10);
// 构造一个URL,指向需要测试的URL,如>
webClientgetPage的返回类型是comgargoylesoftwarehtmlunitTextPage 也就是TextPage类型
无法强制转换成HtmlPage,导致异常
解决方法有2种
1 TextPage page = webClientgetPage(">
以上就是关于GB2312 的编码,繁体内容变成乱码,怎么解决全部的内容,包括:GB2312 的编码,繁体内容变成乱码,怎么解决、如何触发htmlunit中的keyup事件、用com.gargoylesoftware.htmlunit.WebClient的getPage(url)方法,把结果造型成HtmlPage的异常等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)