• SSH编写程序中文乱码解决


    用SSH开发应用其中一个比较麻烦的事就是中文支持,包括jsp页面显示,get/post请求处理,java代码的字符串,后端数据库连接都需要考虑。为了简化这个过程,我们尽量在各个地方使用单一编码,推荐UTF-8。

    下面以UTF-8为例罗列一下需要考虑的配置。

    1. 一般我们的应用都跑在Tomcat上,Tomcat的配置文件server.xml需要为Connector添加URIEncoding配置,这样它解码中文才不会出现乱码。

    <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>

    2. jsp文件头部需要需要添加contentType和pageEncoding,html的meta中添加content-type。

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

    3. 项目的web.xml中添加编解码filter,添加到其他filter前面。

    <filter>
        <filter-name>CharacterEncodingFilter</filter-name>  
        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
        <init-param>  
            <param-name>encoding</param-name>  
            <param-value>UTF-8</param-value>  
        </init-param>  
        <init-param>
            <param-name>forceEncoding</param-name>
            <param-value>false</param-value>
        </init-param>
      </filter> 
      <filter-mapping>  
        <filter-name>CharacterEncodingFilter</filter-name>  
        <url-pattern>/*</url-pattern>  
      </filter-mapping> 

    4. 在jdbc的连接url中加上charsetEncoding参数,这样连接后端数据库就会使用UTF-8编码

     jdbc.url=jdbc:mysql://1.1.1.1:3306/foo?useUnicode=true&amp;characterEncoding=UTF-8

    5. 后端数据库也配置成UTF-8的,比如Mysql需要在my.cnf中client和mysqld域中添加字段。

    [client]
    default-character-set=utf8
    
    [mysqld]
    character-set-server=utf8

    6. 最后就是你的源码编辑器也设置成UTF-8,包括外部的资源文件,如果有个别需要转码的就在需要的时候转一下,比如8859转utf-8。

    utfstring = new String(pstring.getBytes("iso-8859-1"), "UTF-8");

    上面几点基本就包括了解决乱码的要点,依照坐下来一般就没啥问题了,剩下编码中只需要记住java内部用的UTF-16双字节编码,UTF-16就是交通枢纽。

  • 相关阅读:
    ugui点击穿透判断
    c#字符串代码,动态创建编译器
    github项目分享
    unity 2d 版的lookAt
    unity全屏截图
    shader例子
    AcWing 329. 围栏障碍训练场
    AcWing 326. XOR和路径
    AcWing 324. 贿赂FIPA
    AcWing 322. 消木块
  • 原文地址:https://www.cnblogs.com/marsbible/p/4568770.html
Copyright © 2020-2023  润新知