HTML文件本身格式是ANSI,应该说就是GB2312,用的是eclipse,默认的应该是GBK,也右键属性确认过了,按理说GBK是兼容GB2312的,不过,使用java修改HTML文件的时候,总是会出错。打开ecl...
HTML文件本身格式是ANSI,应该说就是GB2312,用的是eclipse,默认的应该是GBK,也右键属性确认过了,按理说GBK是兼容GB2312的,不过,使用java修改HTML文件的时候,总是会出错。
打开eclipse的第一次一般不会出错。有时运行两次出错,有时运行一次出错,好像与我打开HTML时查看其代码有关系。
而且,写入HTML文件之后,不知如何自动refresh这个HTML文件,似乎和乱码的出现有关。
试过了,会在网页开头出现这段代码,应该和我没配置环境有关系,不想配置环境哦...
HTML文件开头是有这么一段的
乱码的情况如下:
function initMap(){
createMap();//创建地?? setMapEvent();//设置地图事件
addMapControl();//向地图添加控件
注释出错了,居然连换行都跪了,删除就可以,更头疼的是这里
lushu = new BMapLib.LuShu(map,window.arrPoisA,{
defaultContent:"逃亡?废?,
很奇特,有些中文出乱码,有些中文不出乱码。
好吧,目前我实际上是删掉了所有的中文内容,勉强运行的。
当然,不写入,也不会出错。
贴出关键的读取和写入HTML文件的代码,
其余的部分,其实就是根据读到的内容,做一定的修改
//读取HTML文件数据
private String readHTML (){
String s = "";// 读取文件时使用
try {
FileInputStream fis = new FileInputStream(FilePath);// 从HTML文件中读取信息
byte[] buf = new byte[1024];// 缓存HTML文件信息
while (true) {
int i = fis.read(buf);
if (i == -1)
break;
s = s + new String(buf, 0, i,"GB2312");// 将byte解码成String
}
fis.close();
} catch (Exception e) {
e.printStackTrace();
}
return s;
}
//往HTML文件写入数据
private void writeHTML(String s){
try {
//OutputStreamWriter output = new OutputStreamWriter(new FileOutputStream("test.html"),"GB2312");// 修改原有文件
OutputStream output=new FileOutputStream(FilePath);
output.write(s.getBytes("GB2312"));
output.close();
} catch (Exception e) {
e.printStackTrace();
}
}
现在主要问题是,我不知道,什么时候会出错,会出怎样的错,删改了一个乱码部分,下次另一个部分就出错了,真是太好玩了!
我这个java程序主要做一件事情,给几个参数,然后传到HTML文件中,并将HTML文件显示出来。
为什么要修改HTML文件呢?因为我太蠢了,不会用java给js传参数,感觉配环境很麻烦,所以用蛋疼的办法得到蛋疼的结果。
如果能给出不那么麻烦的其他传参的方法,自然更好。
其实想到一个很蠢的办法,用剪切板做中转站,呵呵....解码挺麻烦的....