GB2312 的编码,繁体内容变成乱码,怎么解决

GB2312 的编码,繁体内容变成乱码,怎么解决,第1张

第一步:下载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的异常等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/9316567.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存