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

简介: 【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)。 注意,这个设置只对当前会话有效。

目录
相关文章
|
Android开发 芯片 开发者
adb 查看安卓手机 CPU 类型(armeabi、armeabi-v7a、arm64-v8a ...)
adb 查看安卓手机 CPU 类型(armeabi、armeabi-v7a、arm64-v8a ...)
6553 0
|
4月前
|
安全 Java API
别再瞎升级!SpringBoot 2 与 3 全维度核心差异、底层原理与实战避坑
Spring Boot 2 与 3 并非简单版本迭代:前者基于 JDK 8 和 Java EE(javax.*),后者全面升级至 JDK 17+、Jakarta EE 9+(jakarta.*),并原生支持 AOT 编译、虚拟线程、OpenAPI 3、RFC 7807 异常规范及云原生可观测性,架构与生态差异巨大,升级需系统规划与适配。
931 2
|
搜索推荐 数据可视化 数据安全/隐私保护
免费、强大的开源笔记软件Joplin综合评测 —印象笔记的开源替代
Joplin 介绍 绝大部分开源工具都是免费的。如果寻找免费的笔记应用,自然需要考虑开源笔记软件。 在我的视野范围内,常见开源笔记软件包括Boostnote、GitNote、Joplin. 其中,前两者都是面向开发人员,全平台、支持中文、支持浏览器插件和扩展。而 Joplin 则面向一般用户。下面主要介绍 Joplin.
2995 0
免费、强大的开源笔记软件Joplin综合评测 —印象笔记的开源替代
|
7月前
|
存储 人工智能 搜索推荐
AI Agent 记忆系统:从短期到长期的技术架构与实践
本文系统阐述AI Agent记忆系统的核心技术:短期记忆(会话级上下文管理)与长期记忆(跨会话知识沉淀)。涵盖上下文工程策略(压缩、卸载、隔离)、Record/Retrieve架构、主流框架(ADK/LangChain/AgentScope)实现差异,及Mem0等开源方案集成,并探讨MaaS、多模态记忆等前沿趋势。(239字)
11874 3
AI Agent 记忆系统:从短期到长期的技术架构与实践
|
存储 JSON API
作为开发者,我如何提高任务型大模型应用的响应性能
本文基于实际场景,分享了作为开发者提高大模型响应性能的四个实用方法。
3551 58
|
设计模式 安全 数据库连接
【C++11】包装器:深入解析与实现技巧
本文深入探讨了C++中包装器的定义、实现方式及其应用。包装器通过封装底层细节,提供更简洁、易用的接口,常用于资源管理、接口封装和类型安全。文章详细介绍了使用RAII、智能指针、模板等技术实现包装器的方法,并通过多个案例分析展示了其在实际开发中的应用。最后,讨论了性能优化策略,帮助开发者编写高效、可靠的C++代码。
568 2
|
Java 应用服务中间件
idea tomcat 日志 中文 乱码【已解决】
idea tomcat 日志 中文 乱码【已解决】
1483 0
|
IDE 开发工具
【开发IDE升级】如何对IDEA版本进行升级
本文介绍了如何将 IntelliJ IDEA Ultimate 从 2020.2.2 版本升级到 2022.3.2 版本。主要内容包括准备工作、卸载旧版本和安装新版本的步骤。首先,从官网下载所需版本并备份旧版配置;接着,通过 Uninstall.exe 卸载旧版,保留配置和插件;最后,安装新版并完成激活。详细的操作步骤和截图帮助用户顺利完成升级过程。
19100 1
【开发IDE升级】如何对IDEA版本进行升级
|
XML Java Maven
idea配置maven步骤及常见问题
本文介绍了在IDEA中配置Maven的详细步骤,包括Maven的下载、系统环境变量的配置、Maven本地仓库的设置、镜像加速的配置,以及在IDEA中指定Maven路径和配置文件。同时,还提供了解决每次新建项目需要重新手动配置Maven问题的方法。
idea配置maven步骤及常见问题

热门文章

最新文章