zoukankan      html  css  js  c++  java
  • javaweb后台转码

    为什么需要转码?

    客户端向服务器发送请求的四种情况:1、URL方式直接访问;2、页面链接(属于get请求);3、表单get提交;4、表单post提交

    1.url(url和页面链接):各大浏览器、各个操作系统对URL的URI、QueryString编码都可能存在不同.tomcat对URI的解码操作是首先获取Connector的解码集,

    该配置在server.xml中,<Connector URIEncoding="utf-8"  />  如果没有定义则会采用默认编码ISO-8859-1来解析。

    2,表单:发送请求时都是根据设置的charset进行编码,解码时,get方式根据设置的URIEncoding进行,post方式仍根据页面设置的charset.

    @参考文章

    jetty默认是utf-8.jetty与tomcat不同,不是在xml配置文件中修改,可以在Jvm参数中加入:Dorg.mortbay.util.URI.charset=字符编码@参考文章

    如何转码?

    iso-8859-1转utf-8

    String args=new String(request.getParameter("args".getBytes("ISO8859-1"),"utf-8");

    读取文件有时乱码,指定编码格式:

    String pathname = "D:/用户目录/我的文档/Tencent Files/1480756395/FileRecv/新建文本文档 (14).txt"; // 绝对路径或相对路径都可以,这里是绝对路径,写入文件时演示相对路径
    File filename = new File(pathname); // 要读取以上路径的input。txt文件
    InputStreamReader reader = new InputStreamReader(
    new FileInputStream(filename), "GB2312"); // 建立一个输入流对象reader
    BufferedReader br = new BufferedReader(reader); // 建立一个对象,它把文件内容转成计算机能读懂的语言
    String line = "";
    line = br.readLine();
    // testEncode(line);
    String line2="";
    line2+=line;
    while (line != null) {
    line = br.readLine(); // 一次读入一行数据
    line2+=line;
    }

  • 相关阅读:
    Java使用POI操作Excel合并单元格
    LinkedList查询分析
    Redis面试题及答案
    分布式架构基础:Java RMI详解
    什么是线程
    ehcache、memcache、redis三大缓存比较
    ehcache入门基础示例
    js 异步提交文件
    .net core Model对象转换为uri网址参数形式
    net core2.1 在过滤器中获取post的body参数
  • 原文地址:https://www.cnblogs.com/yanan7890/p/6518608.html
Copyright © 2011-2022 走看看