java抓取页面数据保存至数据库乱码怎么解决?
    public class subject {
	public static void getOutpatientService(String url) {
		try {
			Parser myParser = new Parser(url);
			NodeList nodeList = null;
			myParser.setEncoding("gbk");
			NodeFilter tableFilter = new NodeClassFilter(TableTag.class);
			OrFilter lastFilter = new OrFilter();
			lastFilter.setPredicates(new NodeFilter[] { tableFilter });
			NodeFilter linkFilter = new NodeClassFilter(LinkTag.class);
			nodeList = myParser.parse(lastFilter);
			int class1 = 0;
			int class2 = 0;
			int class3 = 0;
			for (int i = 0; i <= nodeList.size(); i++) {
				if (nodeList.elementAt(i) instanceof TableTag) {
					TableTag tag = (TableTag) nodeList.elementAt(i);					
					String tableid = tag.getAttribute("id");
					if (tableid != null
							&& tableid
									.trim()
									.equals(
											"_ctl0_cphMain_WucOPRegister_Step1_wucStep1_WucOPDepartmentList1_dgOPDepartment")) {
						TableRow[] rows = tag.getRows();
						System.out.println(rows.length);
						for (int j = 0; j < rows.length; j++) {
							TableRow tr = (TableRow) rows[j];
							TableColumn[] td = tr.getColumns();							
							if (td.length == 5) {								
								class1 = insertIntoDb(td[0].toPlainTextString()
										.trim(), "", 0);								
								class2 = insertIntoDb(td[1].toPlainTextString()
										.trim(), "", class1);																								
								//测试
						       byte [] s=td[0].toPlainTextString().trim().getBytes();
						       for (byte b : s) {
								  System.err.println(b);
							   }								
								for (int tdl = 2; tdl < 5; tdl++) {
									NodeList aList = td[tdl].getChildren();
									for (int aListcount = 0; aListcount < aList
											.size(); aListcount++) {
										if (aList.elementAt(aListcount) instanceof LinkTag) {
											LinkTag linkTag = (LinkTag) aList
													.elementAt(aListcount);
											if (linkTag.getAttribute("href") != null) {
												insertIntoDb(td[tdl]
														.toPlainTextString()
														.trim(), linkTag
														.getAttribute("href")
														.replace("&", "&"),
														class2);
											}
										}
									}
								}
							}
							if (td.length == 4) {
								// 浜岀被
								class2 = insertIntoDb(td[0].toPlainTextString()
										.trim(), "", class1);
								for (int tdl = 1; tdl < 4; tdl++) {
									NodeList aList = td[tdl].getChildren();
									for (int aListcount = 0; aListcount < aList
											.size(); aListcount++) {
										if (aList.elementAt(aListcount) instanceof LinkTag) {
											LinkTag linkTag = (LinkTag) aList
													.elementAt(aListcount);											
											if (linkTag.getAttribute("href") != null) {
												insertIntoDb(td[tdl]
														.toPlainTextString()
														.trim(), linkTag
														.getAttribute("href")
														.replace("&", "&"),
														class2);
											}
										}
									}
								}
							}
							if (td.length == 3) {
								// 涓夌被
								for (int tdl = 0; tdl < 3; tdl++) {
									NodeList aList = td[tdl].getChildren();
									for (int aListcount = 0; aListcount < aList
											.size(); aListcount++) {
										if (aList.elementAt(aListcount) instanceof LinkTag) {
											LinkTag linkTag = (LinkTag) aList.elementAt(aLis