java代码转换编码方式 java编码转换工具类

java怎样实现将GB2312编码的字符串转换为ISO-8859-1编码的字符串通过JDK1.6知道String类中getBytes(”编码“)方法可以讲一个数用指定的编码转成一个字节数组 , String中通过指定的 charset解码指定的 byte 数组,构造一个新的 String 。代码如下java代码转换编码方式:
try{
String s = "java学习";
System.out.println(s);
String result = new String(s.getBytes("GB2312"),"iso-8859-1");
System.out.println(s);
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
【java代码转换编码方式 java编码转换工具类】}
扩展资料java代码转换编码方式:
getBytes() 方法有两种形式:
1、getBytes(String charsetName): 使用指定的字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中 。
2、getBytes(): 使用平台的默认字符集将字符串编码为 byte 序列,并将结果存储到一个新的 byte 数组中 。
参考资料:
百度百科-getBytes()
Java 修改编码格式的几种方式主要分response的字节字符输出流和request接受中文参数doGet(),doPost()的设置四种.以及从服务器下载文件到浏览器的编码问题.
都是我学习java时总结的,希望能帮到你.
response的字节输出流:
// 设置浏览器默认打开的时候采用的字符集编码
response.setHeader("Content-Type", "text/html;charset=UTF-8");
// 设置中文转成字节数组的时候取出的编码
response.getOutputStream().write("如果不设置编码,这里就是乱码".getBytes("UTF-8"));
response的字符输出流:
//设置浏览器默认打开的时候采用的字符集编码,response的字符流的缓冲区的编码.
response.setContentType("text/html;charset=UTF-8");
response.getWriter().println("中文");
request的doGet()编码解决:
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"UTF-8");
System.out.println("GET方式:"+name);
request的doPost()编码解决:
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
System.out.println("POST方式:"+name);
下载文件时浏览器编码问题:
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 1.接收参数
String filename = new String(request.getParameter("filename").getBytes("ISO-8859-1"),"UTF-8");
System.out.println(filename);
// 2.完成文件下载:
// 2.1设置Content-Type头(获取文件的mime类型)
String type = this.getServletContext().getMimeType(filename);
//设置文件的mime类型
response.setHeader("Content-Type", type);
// 2.3web项目文件的绝对路径
String realPath = this.getServletContext().getRealPath("/download/"+filename);
// 获得浏览器的类型处理中文文件的乱码问题.(User-Agent:服务器收到客户端版本之类的一些信息)
String agent = request.getHeader("User-Agent");
System.out.println(agent);
if(agent.contains("Firefox")){
filename = base64EncodeFileName(filename);
}else{
//IE谷歌编码
filename = URLEncoder.encode(filename,"UTF-8");
}
// 2.2设置Content-Disposition头(固定写法,让浏览器必须下载 , 不能直接打开)
response.setHeader("Content-Disposition", "attachment;filename="+filename);
//获得文件
InputStream is = new FileInputStream(realPath);
// 获得response指定的方法获取输出流:如果用其他流是直接拷贝而不是下载
OutputStream os = response.getOutputStream();
int len = 0;
byte[] b = new byte[1024];
while((len = is.read(b))!= -1){
os.write(b, 0, len);

推荐阅读