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

本文涉及的产品
资源编排,不限时长
无影云电脑个人版,1个月黄金款+200核时
无影云电脑企业版,4核8GB 120小时 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)。 注意,这个设置只对当前会话有效。

目录
相关文章
|
4月前
|
开发者 Java 前端开发
Struts 2验证框架:如何让数据校验成为Web开发的隐形守护者?揭秘前后端一致性的秘诀
【8月更文挑战第31天】在现代Web开发中,数据验证对确保应用健壮性和良好用户体验至关重要。随着前后端分离架构的普及,保证数据校验一致性尤为关键。Struts 2 验证框架基于 JavaBean 验证 API(JSR 303/JSR 380),允许开发者通过注解或 XML 配置轻松定义验证规则,确保输入数据在执行业务逻辑前已通过验证。此外,Struts 2 支持与前端 JavaScript 验证相结合,确保前后端数据校验一致,提升用户体验。通过注解、XML 配置和资源文件,开发者可以轻松定义和调整验证规则,实现前后端一致的数据校验,提高应用健壮性。
55 0
|
7月前
|
算法 Java API
Java注释的重要性及实践应用
Java注释的重要性及实践应用
104 0
|
存储
十种高级的代码书写方式,提高代码质量和工作效率
十种高级的代码书写方式,提高代码质量和工作效率
76 0
|
缓存 前端开发 安全
告别混乱代码:SpringBoot 后端接口规范
告别混乱代码:SpringBoot 后端接口规范
1861 0
|
测试技术 API
构建知识体系 第2期 - 单元测试如何做 http 测试
上一篇文章我们大概的了解了单元测试的理论知识以及如何配置和使用,以及针对模块、controller如何编写测试用例。
128 0
构建知识体系 第2期 - 单元测试如何做 http 测试
|
SQL XML 存储
安全开发规范:开发人员必须了解开发安全规范(一)(涉及安全问题,以及解决方法和代码实现)
安全问题其实是很多程序员想了解又容易忽略的问题,但需要我们重视起来,提高应用程序的安全性。常出现的安全问题包括,程序接受数据可能来源于未经验证的用户,网络连接和其他不受信任的来源,如果未对程序接受数据进行校验,则可能会引发安全问题等等
6153 0
安全开发规范:开发人员必须了解开发安全规范(一)(涉及安全问题,以及解决方法和代码实现)
|
缓存 弹性计算 前端开发
如何做好“防御性编码”?
防御性编码的意义类似于“防御性驾驶”对驾驶安全的重要性,防御性编码 目的概括起来就一条:将代码质量问题消灭于萌芽。要做到“防御性编码”,就要求我们充分认识到代码质量的严肃性,也就是“一旦你觉得这个地方可能出问题,那基本它就会(在某个时刻)出问题”。当然,实际情况比这个更严峻。由于大家的编码经验和风格差异,导致大家的意识边界是大小不一的,那些潜伏在意识边界之外的“危险”更加隐蔽和不可琢磨。在意识层面
186 0
如何做好“防御性编码”?
|
数据采集 安全 搜索推荐
程序人生 - 不要触犯法律,编写安全爬虫的几点建议
程序人生 - 不要触犯法律,编写安全爬虫的几点建议
141 0
建立好swagger接口编写规范,减少前后端人员扯皮
随着前后端分离的普及,日常code中前后端人员扯皮是一个非常常见的事情,所以博主在公司的接口与接口文档编写过程中,制定了一系列的接口文档编写规范。使接口查找更加的明确,入参与出参更加的规范化。这样会大大减少前后端人员沟通的时间。
206 0
建立好swagger接口编写规范,减少前后端人员扯皮
|
设计模式 Java 程序员
怎样才能写出规范的好代码?
最近发现一件事情,自己写的代码和公司里工作5到10年的前辈写的代码虽然功能一样,但是他们的代码更规范,更优雅。比如有时候我会给一个需求写一个方法,但是有些人就可以好几个需求通过同一个方法实现。因此有了今天这个疑问,怎样才能写出规范的好代码?