我的博客——Java文件操作系列

【Java文件操作(一)】递归打印文件目录

【Java文件操作(二)】删除文件夹,但保留其内部文件

【Java文件操作(三)】递归复制文件夹内所有文件

【Java 文件操作(四)】递归套递归,计算每个文件夹大小


方法一:手动转换

代码

变量 gb存的是要转换的字符串,写入之后直接运行即可。

import java.io.UnsupportedEncodingException;

public class Mytest
{
	public static void main(String[] args) throws UnsupportedEncodingException
	{
		String gb = "要转换的字符串";
		byte[] bytes = gb.getBytes("gb2312");// 先把字符串按gb2312转成byte数组
		StringBuilder gbString = new StringBuilder();
		for (byte b : bytes)// 循环数组
		{
			String temp = Integer.toHexString(b);// 再用Integer中的方法,把每个byte转换成16进制输出
			temp = temp.substring(6, 8); // 截取
			gbString.append("%" + temp);
		}
		System.out.println(gbString);
	}
}

运行结果

%d2%aa%d7%aa%bb%bb%b5%c4%d7%d6%b7%fb%b4%ae


方法二:使用URLDecoder和URLEncoder类

代码

package simpletest;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

public class Test {
	public static void main(String[] args) throws UnsupportedEncodingException {
		test1();
	}

	// url地址编码与解码测试
	public static void test1() throws UnsupportedEncodingException {
		String url = "http://192.168.1.20:80/gserver/upload/小甲鱼哈哈.mp4";
		System.out.println("源地址:" + url);
		url = URLEncoder.encode(url, "UTF-8");
		System.out.println("编码后:" + url);
		url = URLDecoder.decode(url, "UTF-8");
		System.out.println("解码后:" + url);
	}
}

运行结果

源地址:http://192.168.1.20:80/gserver/upload/小甲鱼哈哈.mp4
编码后:http%3A%2F%2F192.168.1.20%3A80%2Fgserver%2Fupload%2F%E5%B0%8F%E7%94%B2%E9%B1%BC%E5%93%88%E5%93%88.mp4
解码后:http://192.168.1.20:80/gserver/upload/小甲鱼哈哈.mp4