JSP中文乱码问题 页面经过过滤器后得到的是中文,但插入到MYSQL数据库却成了“?”为什么?

《MySQL 入门教程》第 28 篇 字符集与排序规则 介绍 MySQL 中的字符集(Character Set)和排序规则(Collation)。字符集决定了能够存储哪些字符,排序规则定义了字符集中字符的排序和比较顺序,包括是否区分大小写,是否区分重音等。 MySQL 支持服务器、数据库、表、字符字段级别以及字符串常量的字符集和排序规则设置,同时还可以设置客户端连接的字符集和国家字符集。 阅读详情
最近在登陆公司服务器上的数据库时,在命令行里执行查询语句时候得到的结果只要是中文,就全部是乱码,很让人头疼呀,
查了些资料总结一下.作为自己以后的参考.

MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。
对于字符集的支持细化到四个层次:
服务器(server),数据库(database),数据表(table)和连接(connection)。
1.MySQL默认字符集:MySQL对于字符集的指定可以细化到一个数据库,一张表,一列。
传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置.

(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,
  此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;如果什么地方都不修改,
  那么所有的数据库的所有表的所有栏位的都用 latin1 存储,

不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把  default_character_set 设置为 UTF-8,
这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 UTF-8 存储。

2.查看默认字符集(默认情况下,mysql的字符集是latin1(ISO_8859_1)通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:

mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+---------------------------------+
| Variable_name            | Value                           |
+--------------------------+---------------------------------+
| character_set_client     | latin1                          |
| character_set_connection | latin1                          |
| character_set_database   | latin1                          |
| character_set_filesystem | binary                          |
| character_set_results    | latin1                          |
| character_set_server     | latin1                          |
| character_set_system     | utf8                            |
| character_sets_dir       | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+

mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-----------------+
| Variable_name        | Value           |
+----------------------+-----------------+
| collation_connection | utf8_general_ci |
| collation_database   | utf8_general_ci |
| collation_server     | utf8_general_ci |
+----------------------+-----------------+

3. 修改默认字符集

  (1) 最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值,
如    default-character-set = utf8
      character_set_server =  utf8
   修改完后,重启mysql的服务,service mysql restart
   使用 mysql> SHOW VARIABLES LIKE 'character%';查看,发现数据库编码均已改成utf8
+--------------------------+---------------------------------+
| Variable_name            | Value                           |
+--------------------------+---------------------------------+
| character_set_client     | utf8                            |
| character_set_connection | utf8                            |
| character_set_database   | utf8                            |
| character_set_filesystem | binary                          |
| character_set_results    | utf8                            |
| character_set_server     | utf8                            |
| character_set_system     | utf8                            |
| character_sets_dir       | D:"mysql-5.0.37"share"charsets" |
+--------------------------+---------------------------------+

   (2) 还有一种修改字符集的方法,就是使用mysql的命令
     mysql> SET character_set_client = utf8 ;
     mysql> SET character_set_connection = utf8 ;
     mysql> SET character_set_database = utf8 ;
     mysql> SET character_set_results = utf8 ;
     mysql> SET character_set_server = utf8 ;

     mysql> SET collation_connection = utf8 ;
     mysql> SET collation_database = utf8 ;
     mysql> SET collation_server = utf8 ;

一般就算设置了表的默认字符集为utf8并且通过UTF-8编码发送查询,你会发现存入数据库的仍然是乱码。
问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:

SET NAMES 'utf8';
它相当于下面的三句指令:
SET character_set_client = utf8;
SET character_set_results = utf8;
SET character_set_connection = utf8;

不知道什么原因,我在自己机器上把上述三个字符集都设置成utf8后,查询中文结果还是乱码,
只有把character_set_results设置成GBK之后才能从命令行正常显示中文.
最简单的修改方法,就是修改mysql的my.ini文件中的字符集键值, 
如    default-character-set = utf8 
      character_set_server = utf8 
   修改完后,重启mysql的服务,service mysql restart 

或者
SET character_set_client = utf8 ; 
SET character_set_connection = utf8 ; 
SET character_set_database = utf8 ; 
SET character_set_results = utf8 ; 
SET character_set_server = utf8 ; 
SET collation_connection = utf8 ; 
SET collation_database = utf8 ; 
SET collation_server = utf8 ; 

如果你用是SQLYOG可能你放入数据库后看到表中是乱码.但取出还是可以显示成中文 .用Nacivats要好点.可以直接设置数据库的字符集.
如果服务器的是tomcat.最好也把tomcat设置下.
在server.xml中设置如下:
<Connector port="8080" maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
  enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"
  connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/>
 注意:URIEncoding="UTF-8"是自己加上去的.
重启就应该没有什么问题了吧.. 
Ubuntu 20.04 环境下Autoware.universe 与 Carla 0.9.13 联合仿真 安装内容: ROS Galactic Autoware.universe based on ROS Galactic Carla 0.9.13 UnrealEngine 4.26 Openplanner (additional files: op-bridge/op-agent/scenariorunner/map data) 阅读详情

相关推荐

棋牌App逆向工程实战:透视风险分析与反作弊加固思路

在移动应用安全领域,逆向工程是一项关键的攻防技术,它通过静态分析、动态调试与协议抓包等手段,深入还原客户端真实逻辑。这项技术的核心原理,是从已编译的安装包中提取数据流,验证服务端下发的信息是否超出了客户端应有的可见范围。从技术价值看,安全测试人员可以借此定位协议层、内存层与缓存层的潜在风险,为反作弊体系提供精准的加固建议。在棋牌类App等实时对局场景中,逆向工程常被用于排查牌局信息泄露类隐患,而合规授权与测试环境是开展此类研究的必要前提。本文结合一次棋牌App的安全评估实践,梳理了从环境准备到数据流还原的完

weixin_29326909的博客 176

JSP中文乱码问题 页面经过过滤器后得到的是中文,但插入到MYSQL数据库却成了“?”为什么?...

最近在登陆公司服务器上的数据库时,在命令行里执行查询语句时候得到的结果只要是中文,就全部是乱码,很让人头疼呀,查了些资料总结一下.作为自己以后的参考.MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。 对于字符集的支持细化到四个层次:服务器(server),数据库(database),数据表(ta...

weixin_33785972的博客 181

OpenCV轮廓匹配实战:5分钟搞定Hu矩形状识别(附完整代码)

本文详细介绍了使用OpenCV进行轮廓匹配的实战技术,重点讲解了Hu矩形状识别在工业质检等领域的应用。通过完整的代码示例和参数调优技巧,帮助开发者在5分钟内实现高效的形状识别,提升工业检测的准确性和效率。

nnn11的博客 676

MySQL 字符串类型

MySQL 中的字符串大体分为三类,这里不讨论第三类: 长度以字符为单位的(character string 或 nonbinary string):CHAR、VARCHAR、TEXT(共四种:TINYTEXT、TEXT、 MEDIUMTEXT、LONGTEXT) 长度以字节为单位(binary string):BINARY、VARBINARY、BLOB(共四种:TINYBLOB、BLOB、 MEDIUMBLOB、LONGBLOB) 其他:ENUM、SET 下表为各种类型的最大长度: 单位 25

赵丙双的博客 6267

Outlook总是提示登录微软,怎么办?

Outlook 2021反复弹出Microsoft登录窗口,可能是由于Modern Authentication身份验证机制或凭据问题导致。解决方案包括:1)通过注册表关闭Modern Authentication(适用于本地Exchange);2)清理Windows凭据管理器中的旧认证信息;3)手动配置Exchange服务器地址;4)通过注册表阻止Microsoft登录窗口弹出(适用于非M365环境)。建议按顺序尝试,尤其前两步通常能解决问题。经测试,步骤1和2已有效解决该问题。

剪刀石头布 4679

无人机巡检提速3倍!YOLOv8n+OpenVINO让Jetson Nano跑25FPS,还能多飞25分钟

摘要(149字): 针对无人机巡检中Jetson Nano算力不足导致的帧率低、首次推理延迟高、续航短等问题,提出YOLOv8n+OpenVINO联合优化方案: 模型轻量化:YOLOv8n参数量仅3.2M(较v8s减少71%),Jetson Nano帧率从8FPS提升至15FPS(原生),绝缘子裂纹召回率仅降3%; OpenVINO加速:AUTO模式动态分配CPU/GPU算力,首次推理延迟从500ms降至200ms,帧率再优化至25FPS; 能效提升:功耗降低40%,单次续航延长25分钟。方案已落地电力/林

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1242

23.3. Character Set Support

23.3字符集支持 PostgreSQL支持多种字符集。默认字符集在初始化群集的时候指定。可在创建数据库时重新指定,即可在同一群集中拥有不同字符集的数据库。 23.3.1支持的字符集 23.3.2设置字符集 使用initdb为数据库群集指定默认字符集: initdb -E EUC_JP #或使用--encoding 在创建数据库的时候指定字符集: createdb -E EUC_KR -T template0 --lc-collate=ko_KR.euckr --lcc...

在路上 831

SAP S/4HANA 物料分类账(ML)/实际成本核算(Actual Costing)——底表全景 & CKMLCP 执行后数据变化

插入 ML 重估凭证行项目:Dr/Cr 库存科目(期末库存调整)、Dr/Cr COGS/消耗科目(消耗重估)、Cr/Dr ML 重估抵消科目(PRY/PRV 类逻辑)also STPRS/VERPR/PEINH/LBKUM 等(但 S/4 很多“真理”在 ACDOCA)MLPP / MLPPF / MLCR / MLCRF / MLCD / CKMLMV003/004 等。Material Ledger Document(行项目明细:收货/发票价差/结算写入/重估相关)间接(PUP在CKMLCR;

weixin_52203666的博客 587

MySQL中character的意思_mysql 中 character set 与 collation 的点滴理解

使用 mysql 建立数据表的时候, 总免不了要涉及到 character set 和 collation 的概念, 以前不是很了解。java这两天不是很忙, 就本身整理了一下。mysql先来看看 character set 和 collation 的是什么?sql&. character set, 即字符集。数据库咱们常看到的 utf-8, GB2312, GB18030 都是相互独立的...

weixin_31362539的博客 5295

【小白指南】如何将deepseek引入WPS\Word\Excel中去?

如何将deepseek引入WPS\Word\Excel中去?纯小白都能看的懂,一步步操作就能行

2503_90498422的博客 1万+

【技能】OpenClaw Skills学习及手搓一个极简skill

本文介绍了OpenClaw Skills的基础概念与使用方法。Skills是OpenClaw代理使用工具的核心载体,通过SKILL.md文件定义技能属性和执行方式。技能加载遵循"工作区>本地>内置>自定义目录"的优先级规则。用户可通过ClawHub一键安装现成技能,也可自定义开发技能:创建技能目录,编写包含YAML元数据和执行指令的SKILL.md文件,放置于工作区skills目录进行测试。文章还介绍了多代理场景下的技能共享、插件集成以及安全注意事项,包括沙箱使用和敏感

海兰 3977

基于51单片机的信号发生器设计:定时器、DAC0832与波形生成实战解析

信号发生器是电子系统设计与单片机应用中的经典功能模块,其本质是控制数字量按时序变化,再经数模转换还原为模拟信号。在51单片机这类8位处理器平台上,定时器中断用于确定采样节拍,查表法代替实时计算以降低开销,而DAC0832作为并行数模转换芯片,可将数字波形数据平滑映射为电压输出。理解从定时初值计算、步进调节到波形表生成的核心流程,就能掌握频率可调、波形可切换的工程实现方法。该技术广泛应用于课程设计、仪器仪表、音频合成等场景。本文围绕信号发生器课程设计案例,详解C51程序框架、DAC0832直通模式接线、仿真与

weixin_34269583的博客 125

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

RISC18内核8位MCU选型指南:低成本嵌入式方案的进阶之选

在嵌入式开发中,MCU选型往往面临成本与性能的平衡。传统8位单片机因架构陈旧、C语言支持弱而备受争议,而RISC18这类新内核通过精简指令集与单周期执行,显著提升了代码效率,让低成本方案也能拥有现代开发体验。从8位到32位并非必然趋势,高性价比的MCU在消费电子、工业控制、传感器采集等场景依然不可替代。RISC18内核具备固定长度指令、灵活的寄存器模型以及成熟C编译器支持,在降低BOM成本的同时保障实时性与抗干扰能力。本文结合英锐恩RISC18系列的实际应用,解析选型要点、工具链适配及量产烧录细节,为嵌入式

weixin_33824363的博客 155

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

tomcat mysql数据库显示乱码_解决jsp,tomcat,MYSQL下中文乱码问题

这些天开发一个项目,服务器是tomcat,操作系统是xp,采用的是MVC架构,模式是采用Facade模式,总是出现乱码,通过简单的设置页面字符集,总算可以正确显示中文,可是没想到表单里提交的数据里的中文还是有乱码,我狂晕,没想到JSP里的乱码问题比ASP里严重多了,自己也解决了好多天,同事也帮忙解决,也参考了网上众多网友的文章和意见,总算是搞定。但是好记性不如烂笔杆,所以特意记下,以防止自己遗忘,...

weixin_39753260的博客 949

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

mysql与jsp中文乱码问题_Mysql与JSP网页中文乱码问题的解决方案

Mysql与JSP网页中文乱码问题的解决方案自从以前学习JSP开始,中文乱码问题就一直不断,苦不堪言。这次在项目开始之前,我们要解决的第一个问题就是把mysql的中文乱码问题搞定。经过多天的努力,终于成功的解决了中文乱码问题,特写在这里,以备后用。软件及环境:Windows XP(2000), j2sdk1.4.2, Tomcat 5.0.25, mysql 4.1,EMS Mysql Man...

weixin_42402228的博客 839

【原创】解决jsp文件和MYSQL数据乱码的问题...

近段网上许多朋友问我为什么JSP显示中文的地方不是?号,就是乱码..从表单里插入mysql的数据也是一样乱码..原因其实很简单,因为大家大多用tomcat服务器,而tomcat服务器的默认编码为 iso-8859-1(西欧字符).就是因为iso-8859-1(西欧字符)编码造成了我们经常看到?号或者乱码.. 下边给大家综合的说下解决办法....1.用于JSP页面中的中文显示...

shiTou工作室.. 3067

tomcat+mysql中文乱码问题

先让我们想一想,仔细分析一下环节。 从jsp前台 -> 后台java代码 -> 再到DB。再从DB -> 读出到后台 -> 显示到jsp上。 看是哪个环节出问题。通常我们是建议使用utf-8,那么每一个环节都要保证是utf-8。 这里有两个过程,一是写的过程,二是读出来显示的过程。先判断是哪个过程出的问题,很简单,先手动在DB插入一条中文的记录,看前台能否显示,能表示读的过程没问题,乱码出在写

Stu_zkl的博客 1202

jsp数据添加乱码mysql_JSP插入MySQL数据库中文乱码问题解决

通过JSP页面向MySQL数据库插入中文数据时乱码问题刚开始插入数据时,mysql数据库表内显示???,读取时同样也是???对此查找了相关资料,首先注意保持服务器、数据库、项目、以及前端编码一致。具体做法是:一、项目编码,Eclipse设置。Eclipse Java EE IDE for Web Developers ->右键项目 -> Properties -> Resourc...

weixin_39609423的博客 596

JSP中文乱码问题 页面经过过滤器后得到的是中文,但插入到MYSQL数据库却成了乱码,的问题解决方法。

<br /> MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次:<br />      服务器(server),数据库(database),数据表(table)和连接(connection)。<br /> <br />      1.MySQL默认字符集:MySQL对于字符集的指定可以细化到一个数据库,一张表,一列.传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们

zpfBlue的专栏 755

jsp页面添加中文数据到mysql数据库乱码问题

jsp页面中输入中文数据,保存到mysql数据库中是乱码,从数据库中读取数据后在jsp页面显示还是乱码,要解决此问题需从以下几个方面考虑: 1、获得mysql的字符集 查看mysql字符集的命令是:  mysql> show variables like "character_set_%";   character_set_system 总是utf-8

symgdwyh的专栏 1万+

jsp mysql 乱码 页面显示乱码

jspmysql乱码 mysql数据库读出 原来表中记录不乱码,在页面显示数据,为乱码 整理文件如下》》》》》》》》 jsp中文乱码 jsp mysql 乱码要servlet里面支持中文的方法: 在dopost或者doget的第一句加上: request.setCharacterEncoding("GB2312"); response.setCh...

iteye_10866的博客 170

Linux下mysql中文乱码解决方案

 中文存入 mysql 数据库出现的乱码,从 JSP 页面读取 mysql 中文数据出现乱码,以及在 sell 环境下查看数据库表中文数据出现乱码。为了解决中文乱码问题,首先是采用同一字符集。本人采用的是Gbk.1.              安装mysql后首先修改配置文件 /etc/my.cnf (注:可能安装的目录不同,通过搜索my.cnf这个文件就可以方便地找到my.cnf这个目录

itsys_java的专栏 1万+

struts2项目插入中文到mysql数据库乱码的解决方法

项目又出了一些小问题,在更新/插入中文数据到mysql数据库时会显示问号。我做了如下工作解决了问题: 1. 检查页面编码 将所有的jsp页面编码方式、字符集更改为<%@ page contentType="text/html;charset=UTF-8"%> <%@ page pageEncoding="UTF-8"%>2. 更改数据库字符集/编码方式 将mysql配置文件my.i

苹果苹果一只梨 2846

mysql项目jsp中文乱码怎么解决方案_如何彻底解决jsp页面中文乱码及数据库乱码...

最近自己闲做一个小项目,搭建环境框架SSH+MySQL数据库,遇到一个问题:jsp页面中文显示乱码,数据库插入数据和更新数据时中文也显示乱码,后来在网上找了许多解决方法,还是折腾了两天才把问题解决,下面总结一下彻底解决中文乱码问题:在项目里的我统一使用UTF-8的编码方式1、知道自己安装Mysql数据库安装配置时选择了什么编码方式,如果之前安装,现在不太清楚,建议重新安装Mysql数据库,安装配置...

weixin_32528123的博客 274

jsp页面写入中文到mysql时出现了乱码(转)

<br />    今天自己在用jsp把中文写入mysql的时候出现乱码,从数据库中读取出来的时候也显示为“??”,感觉应该出现了编码转换过程中的字符信息丢失。然后在mysql中直接执行该命令,发现中文是正常的,所有认为是在往数据库中写中文的时候出现了问题。<br />    在网上找了一会,发现不少解决方法,就转了一篇 过来,这个刚好能解决自己的问题。<br />    在此表示感谢。 <br />    今天遇到了在jsp页面写入中文到mysql时出现了乱码,已经漫长的过程,问题终于解决了。<br />

渐行渐远 1万+

解决存入数据库乱码问题

今天自己在用jsp把中文写入mysql的时候出现乱码,从数据库中读取出来的时候也显示为“??”,感觉应该出现了编码转换过程中的字符信息丢失。然后在mysql中直接执行该命令,发现中文是正常的,所有认为是在往数据库中写中文的时候出现了问题。     在网上找了一会,发现不少解决方法,就转了一篇 过来,这个刚好能解决自己的问题。     在此表示感谢。      今天遇到了在jsp页面写

Woderful life!! 4340
上一篇: jsp从服务器下载xls文件到客户端
下一篇: MYSQL--事务处理
zi_jun
博客等级 码龄18年 109粉丝 7原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值