有朋友想转url可以使用String urlString = URLEncoder.encode(line, "utf-8");
但是这个会连[:,\,+,?....等等]都给转换了,与js中encodeURIComponent异曲同工
但是我想得到跟js中的encodeURI转换后的url怎么办?
方法如下:
测试url:http://www.aaa.net/search?scope=bbs&q=C语言
输出结果:http://www.aaa.net/search?scope=bbs&q=C%E8%AF%AD%E8%A8%80
谢谢各位.
但是这个会连[:,\,+,?....等等]都给转换了,与js中encodeURIComponent异曲同工
但是我想得到跟js中的encodeURI转换后的url怎么办?
方法如下:
直接代码走起
package test;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
import java.io.OutputStreamWriter;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
public class ReadUrlToEncode {
public static void main(String[] args) throws IOException {
String sourceFile = "D://test.txt";
List<String> l = new ArrayList<String>();
ScriptEngineManager sem = new ScriptEngineManager();
ScriptEngine engine = sem.getEngineByExtension("js");
LineNumberReader reader = null;
try {
reader = new LineNumberReader(new BufferedReader(new InputStreamReader(new FileInputStream(sourceFile), "gbk")));
String line;
Object res = null;
while ((line = reader.readLine()) != null) {
// String urlString = URLEncoder.encode(line, "utf-8");
try{
//直接解析
res = engine.eval(" encodeURI('"+line+"')");
System.out.println(res);
}catch(Exception ex){
ex.printStackTrace();
}
l.add(String.valueOf(res));
}
reader.close();
} catch (IOException e) {
if (reader != null) {
try {
reader.close();
} catch (IOException ee) {
}
}
}
File fos = new File("D://geturl.txt");
BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fos,false)));
writer.close();
System.out.println("file ok");
}
}
测试url:http://www.aaa.net/search?scope=bbs&q=C语言
输出结果:http://www.aaa.net/search?scope=bbs&q=C%E8%AF%AD%E8%A8%80
谢谢各位.