项目开发中常用乱码解决手段分享

本文涉及的产品
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 【4月更文挑战第3天】服务器中常用的几个资源监控工具整理

在做项目的过程中,遇到了中文乱码问题,该如何处理?(比如网站主页查询页面显示乱码)


可以从页面,程序,以及数据库三个方面去查看问题的原因所在,主页面显示中文乱码,无外乎是因为从数据库中取出来的数据传输到主页面的过程中出现了编码问题,那么就应该从这三个方面去查找问题的所在。因为我们常用UTF-8的编码格式,所以我们就检查所有数据的编码是否都是UTF-8编码。

1.  查看一下页面jsp文件的编码格式(1.3.1/1.3.2)

1.1、项目文本文件默认编码:

【右击项目】->【Properties】->【Resource】->【Text file encoding】

1.2、文件默认编码:默认使用项目的默认编码

【右击文件】->【Properties】->【Resource】->【Text file encoding】

1.3JSP文件编码:由于JSP要翻译为Servlet

1.3.1、JSP文件编码:

【右击文件】->【Properties】->【Resource】->【Text file encoding】

1.3.2、JSP翻译为Servlet时的编码: (此项可以由1.1,1.2,1.3.1代替)

<%@ page language="java" pageEncoding="utf-8"%>

1.3.3、从服务器将jsp内容输出到浏览器

<%@page contentType="text/html;charset=utf-8"%>

在这次输出过程中,由contentType属性中的charset来指定,将servlet编译后的的二进制码以charset的编码形式来输出。


2.  服务器端编码设置

服务器端编码,将客户端传过来的数据进行解码:

浏览器默认使用ISO-8859-1进行编码数据,然后将数据传输到服务器,因此我们默认只需要将浏览器发送过来的数据转换为我们需要的编码即可。

 

GET请求方式:

2.1 TOMCAT默认ISO-8859-1 因此可以设置默认编码为UTF-8解决,在conf\server.xml文件中设置如下

<Connector port="8080" protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443" URIEncoding=”UTF-8”/>

 

2.2

String username = request.getParameter(“username”);

username = new String(username.getBytes("ISO-8859-1“), "UTF-8");

 

POST请求方式:

2.3 // 必须在获取参数之前,调用如下方法先解码

request.setCharacterEncoding(“UTF-8”);

String username = request.getParameter(“username”);

response.setContentType("text/html;charset=utf-8");


3.数据库的编码设置

 3.1 JDBC连接数据库的编码设置

   "jdbc:mysql://localhost:3306/jd1203db?useUnicode=true&characterEncoding=utf8","root","1234");

3.2 在建表或者建数据库时可以加上:

   create database jsd1203db ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.3查看MySql数据中当前联接系统参数  show variables like 'char%',显示各个编码类型。

   可以show create database dangdang;通过该语句查看建库的语句,看是否有设置编码。

  如果各种编码都是对的,可是在数据库中查看数据时是乱码,可以用set names ‘gbk’,设置查看编码为gbk,与系统一致(windows)。 注意,这个设置只对当前会话有效。

目录
相关文章
|
1天前
|
搜索推荐 JavaScript Java
项目开发过程中实际遇到的几个问题处理
项目开发过程中实际遇到的几个问题处理
11 2
|
1天前
|
JSON 缓存 前端开发
编写代码前,如何规避尽可能多的前端bug?
编写代码前,如何规避尽可能多的前端bug?
25 0
|
9月前
|
开发工具 git Windows
GitBash乱码解决方案
GitBash乱码解决方案
56 0
|
10月前
|
缓存 前端开发 安全
告别混乱代码:SpringBoot 后端接口规范
告别混乱代码:SpringBoot 后端接口规范
1033 0
|
数据可视化
Yii2如何进行代码审查?具体怎么做?底层原理是什么?
Yii2如何进行代码审查?具体怎么做?底层原理是什么?
|
测试技术 API
构建知识体系 第2期 - 单元测试如何做 http 测试
上一篇文章我们大概的了解了单元测试的理论知识以及如何配置和使用,以及针对模块、controller如何编写测试用例。
96 0
构建知识体系 第2期 - 单元测试如何做 http 测试
|
存储 缓存 数据库
相亲软件开发,引入缓存后常见的问题及解决办法
相亲软件开发,引入缓存后常见的问题及解决办法
|
数据采集 安全 搜索推荐
程序人生 - 不要触犯法律,编写安全爬虫的几点建议
程序人生 - 不要触犯法律,编写安全爬虫的几点建议
110 0
|
SQL XML 存储
安全开发规范:开发人员必须了解开发安全规范(一)(涉及安全问题,以及解决方法和代码实现)
安全问题其实是很多程序员想了解又容易忽略的问题,但需要我们重视起来,提高应用程序的安全性。常出现的安全问题包括,程序接受数据可能来源于未经验证的用户,网络连接和其他不受信任的来源,如果未对程序接受数据进行校验,则可能会引发安全问题等等
4914 0
安全开发规范:开发人员必须了解开发安全规范(一)(涉及安全问题,以及解决方法和代码实现)
|
设计模式 Java 程序员
怎样才能写出规范的好代码?
最近发现一件事情,自己写的代码和公司里工作5到10年的前辈写的代码虽然功能一样,但是他们的代码更规范,更优雅。比如有时候我会给一个需求写一个方法,但是有些人就可以好几个需求通过同一个方法实现。因此有了今天这个疑问,怎样才能写出规范的好代码?
http://www.vxiaotou.com