html文件转换为jsp后乱码,一个将html文件批量转换成jsp文件的程序(主要处理中文乱码问题)...

问题提出:在“我爱模板网”把网上的html模板下载到电脑磁盘中,直接改后缀名为jsp,复制到web项目中的webroot下,在发布web项目到tomcat服务器后,通过页面访问出现中文乱码问题?

模板来源:我爱模板网

java开发工具 :MyEclipse 10

服务器:Tomcat 7.x

解决办法:在改后缀名前,在html文件第一行,加上以下设置编码的语句可以解决乱码问题

如果将单个html文件改为jsp文件,以上办法可以解决;

如果有大量的html文件要修改为jsp文件,可以编写一个测试程序,批量修改格式,不乱码;

首先需写一个配置文件:file.properties 此配置文件需放在src下

文件内容:

from=D\:/java/webstyle/

to=D\:/java/webstyle1/ from配置的是修改前的文件夹,此文件加可更改,但需存在;

to配置的是修改后存放jsp的文件夹,此文件加可更改,但需存在;

package cn.chinasofti.zys.htmltojsp;

import java.io.BufferedInputStream;

import java.io.BufferedOutputStream;

import java.io.File;

import java.io.FileInputStream;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

import org.junit.Test;

public class HtmlToJsp {

private static Properties pro ;

private static String from;//修改前的文件夹目录

private static String to;//修改后的文件夹目录

static{//此代码块提前加载,读取配置文件中的内容

try {

String path = 'file.properties';

InputStream in = HtmlToJsp.class.getClassLoader().getResourceAsStream(path);

pro = new Properties();

pro.load(in);

from = pro.getProperty('from');

to = pro.getProperty('to');

}

catch (IOException e) {

System.out.println('未找到配置文件');

e.printStackTrace();

}

}

@Test

public  void htmlToJsp(){

String[] froms = new File(from).list();//获得修改前的文件夹中的文件列表

String[] tos = new String[100];//此数组用于存放修改后的文件的全路径名称

//设置修改后的编码方式

String encoded = '

'import=\'java.util.*\' '

'contentType=\'text/html;charset=UTF-8\' %>' '\r\n';

for (int i = 0; i < froms.length; i ) {

//若文件为html文件,则将其添加至修改后的文件夹目录下,且改变其后缀名

if(froms[i].contains('.html')){//找到文件名包含.html的文件

try {

int index = 0;

//从指定的文件中读出数据,放在输入流中

BufferedInputStream fis = new BufferedInputStream

(new FileInputStream(new File(from,froms[i])));

//在文件读入流中后,改变文件后缀为.jsp

froms[i] = froms[i].replaceAll('.html', '.jsp');//替换文件夹后缀名

tos[i] = to froms[i];//替换后的文件名称

//将文本写入在输出流中,在放入指定的文件中

BufferedOutputStream fos = new BufferedOutputStream

(new FileOutputStream(tos[i]));

//先将编码处理写入流中,在转入文件首行,并换行

fos.write(encoded.getBytes());

while((index=fis.read()) != -1){

//读出后,写入指定文件

fos.write(index);

fos.flush();//刷新

}

//关流

if(fis!=null)fis.close();

if(fos!=null)fos.close();

} catch (IOException e) {

System.out.println('要访问的文件不存在');

e.printStackTrace();

}

}

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值