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

本文涉及的产品
轻量应用服务器 2vCPU 4GiB,适用于搭建Web应用/小程序
轻量应用服务器 2vCPU 4GiB,适用于网站搭建
轻量应用服务器 2vCPU 4GiB,适用于搭建容器环境
简介: 【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)。 注意,这个设置只对当前会话有效。

目录
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
揭秘Google Gemini:AI界的多模态革命者与ChatGPT-4的较量
揭秘Google Gemini:AI界的多模态革命者与ChatGPT-4的较量
595 0
|
搜索推荐 数据可视化 数据安全/隐私保护
免费、强大的开源笔记软件Joplin综合评测 —印象笔记的开源替代
Joplin 介绍 绝大部分开源工具都是免费的。如果寻找免费的笔记应用,自然需要考虑开源笔记软件。 在我的视野范围内,常见开源笔记软件包括Boostnote、GitNote、Joplin. 其中,前两者都是面向开发人员,全平台、支持中文、支持浏览器插件和扩展。而 Joplin 则面向一般用户。下面主要介绍 Joplin.
2478 0
免费、强大的开源笔记软件Joplin综合评测 —印象笔记的开源替代
|
12月前
|
运维 Ubuntu Linux
定时任务管理详解:cron与at的配置与使用
定时任务管理详解:cron与at的配置与使用
761 2
|
前端开发
typora自定义主题
typora自定义主题
401 2
|
存储 运维 监控
什么是运维自动化巡检中心,优势有哪些?
IT运维自动化通过将大量重复性工作转化为自动化操作,实现“零延时”运维,提高运维的主动性和准确性,降低技术人员工作强度。自动化巡检则将手动巡检转变为自动化形式,全面深度检测设备状态,补充监控无法覆盖的范围。其优势包括巡检对象多样、自定义巡检计划和区域、多种通知方式及高效执行,有效提升巡检效率,降低人为失误风险,确保业务稳定运行。
827 0
|
C++
Sublime Text 3 解决中文乱码问题
【5月更文挑战第1天】本篇介绍 Sublime Text 3 解决中文乱码问题,不仅仅适用于 C/C++ 代码,也适用于其他任何 Sublime Text 3 集成的开发环境。
2210 5
Sublime Text 3 解决中文乱码问题
|
网络安全 数据安全/隐私保护 网络架构
什么是 MAC 地址?
【8月更文挑战第24天】
1752 0
|
Java 应用服务中间件
idea tomcat 日志 中文 乱码【已解决】
idea tomcat 日志 中文 乱码【已解决】
906 0
|
监控 NoSQL 算法
深入剖析Redis哨兵模式的原理和应用
Redis的哨兵模式是实现高可用性和自动故障转移的机制,当主服务器故障时,哨兵能自动检测并进行故障转移,确保服务连续和稳定性。哨兵模式通过监控主从服务器状态、自动故障转移、防止数据不一致,提高容错能力和负载均衡,降低运维成本,实现高可用性。哨兵通过检测主观下线和客观下线状态,以及选举Leader Sentinel来协调故障转移。Raft算法在其中用于领导者选举和状态一致性。哨兵模式通过综合考虑多种因素选举新主服务器并执行故障转移,保障集群稳定运行。
1443 0
深入剖析Redis哨兵模式的原理和应用
|
存储 编译器 C++
【Qt 元对象系统 02】深入探索Qt的元对象编译器:从原理到实践
【Qt 元对象系统 02】深入探索Qt的元对象编译器:从原理到实践
887 0

热门文章

最新文章