JAVA环境下处理中文乱码问题一直是很多人困扰的问题,像URL传参乱码,写进数据库乱码,服务写中文文字图片乱码处理及导出PDF乱码。
1:安装中文支持
yum groupinstall "fonts"
2:设置系统编码
echo $LANGvim /etc/locale.conf -- 编辑服务器编码LANG="zh_CN.UTF-8"//重启系统
3:上传字体simsun.ttc至服务器JDK目录(正常该文件在本地的文件系统中可以找到)
4:JAVA导出PDF部分代码
ITextRenderer renderer = new ITextRenderer();ITextFontResolver fontResolver = renderer.getFontResolver(); String pdfFontUrl="c:/Windows/Fonts/simsun.ttc"; fontResolver.addFont(pdfFontUrl, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED); renderer.setDocumentFromString(htmls);
5:tomcat get方式传参乱码,server.xml文件如下配置
<Connector executor="tomcatThreadPool" port="8080" maxHttpHeaderSize="8192" useBodyEncodingForURI="true" disableUploadTimeout="true" URIEncoding="UTF-8" />
6:数据库乱码
JDBC链接
jdbc_url=jdbc:mysql://localhost:3306/xxxx?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&&allowMultiQueries=true数据库设置编码。my.cnf中配置
7:前端显示乱码,主要是前端文件的编码设置。针对接收到的文字乱码主要通过后端程序转化。
后端接收:new String(str.getBytes(), encode))JSP设置:request.setCharacterEncoding("UTF-8");
8:web.xml文件中增加过滤器配置
<filter> <description>字符集过滤器</description> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <description>字符集编码</description> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> </filter>
以上为大部分常见的乱码问题解决方法,供参考。