首页 数据库 mysql教程 JSP中文乱码问题 页面经过过滤器后得到的是中文,但插入到MYSQL_MySQL

JSP中文乱码问题 页面经过过滤器后得到的是中文,但插入到MYSQL_MySQL

Jun 01, 2016 pm 01:51 PM
中文 资料

最近在登陆公司服务器上的数据库时,在命令行里执行查询语句时候得到的结果只要是中文,就全部是乱码,很让人头疼呀,<br />查了些资料总结一下.作为自己以后的参考.<br /><br />MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。
登录后复制
<br />对于字符集的支持细化到四个层次:<br />服务器(server),数据库(database),数据表(table)和连接(connection)。
登录后复制
<br />1.MySQL默认字符集:MySQL对于字符集的指定可以细化到一个数据库,一张表,一列。<br />传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置.<br /><br />(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;<br />(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;<br />(3)启动mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,<br />  此时 character_set_server 被设定为这个默认的字符集;<br />(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;<br />(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;<br />(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;<br />(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;如果什么地方都不修改,<br />  那么所有的数据库的所有表的所有栏位的都用 latin1 存储,<br /><br />不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把  default_character_set 设置为 UTF-8,<br />这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 UTF-8 存储。<br /><br />2.查看默认字符集(默认情况下,mysql的字符集是latin1(ISO_8859_1)通常,查看系统的字符集和排序方式的设定可以通过下面的两条命令:<br /><br />mysql> SHOW VARIABLES LIKE 'character%';<br />+--------------------------+---------------------------------+<br />| Variable_name            | Value                           |<br />+--------------------------+---------------------------------+<br />| character_set_client     | latin1                          |<br />| character_set_connection | latin1                          |<br />| character_set_database   | latin1                          |<br />| character_set_filesystem | binary                          |<br />| character_set_results    | latin1                          |<br />| character_set_server     | latin1                          |<br />| character_set_system     | utf8                            |<br />| character_sets_dir       | D:"mysql-5.0.37"share"charsets" |<br />+--------------------------+---------------------------------+<br /><br />mysql> SHOW VARIABLES LIKE 'collation_%';<br />+----------------------+-----------------+<br />| Variable_name        | Value           |<br />+----------------------+-----------------+<br />| collation_connection | utf8_general_ci |<br />| collation_database   | utf8_general_ci |<br />| collation_server     | utf8_general_ci |<br />+----------------------+-----------------+<br /><br />3. 修改默认字符集<br /><br />  (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编码发送查询,你会发现存入数据库的仍然是乱码。<br />问题就出在这个connection连接层上。解决方法是在发送查询前执行一下下面这句:SET NAMES 'utf8';它相当于下面的三句指令:SET character_set_client = utf8;SET character_set_results = utf8;SET character_set_connection = utf8;不知道什么原因,我在自己机器上把上述三个字符集都设置成utf8后,查询中文结果还是乱码,<br />只有把character_set_results设置成GBK之后才能从命令行正常显示中文.
登录后复制
<pre class="reply-text mb10">最简单的修改方法,就是修改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"<br />  enableLookups="false" redirectPort="8443" acceptCount="100" debug="0"<br />  connectionTimeout="20000" disableUploadTimeout="true" URIEncoding="UTF-8"/> 注意:URIEncoding="UTF-8"是自己加上去的.重启就应该没有什么问题了吧.. 
登录后复制

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使命召唤战区手游怎么设置中文 使命召唤战区手游怎么设置中文 Mar 22, 2024 am 08:41 AM

使命召唤战区作为全新上线的一款手游,有很多的玩家都非常的好奇要怎么样才能够将这款游戏的语言设置为中文,其实非常的简单,玩家只需要下载中文的语言包,随后进行使用就可以进行修改了,详细的内容可以在这篇中文设置方法介绍之中进行了解,让我们一起来看看吧。使命召唤战区手游怎么设置中文1、首先进入游戏,点击界面右上角的设置图标。2、在出现的菜单栏中,找到【Download】这个选项并且点击。3、在这个页面中选择【SIMPLIFIEDCHINESE】(简体中文),就可以对简体中文的安装包进行下载了。4、回到设

Excel表格怎么设置显示中文?Excel切换中文操作教程 Excel表格怎么设置显示中文?Excel切换中文操作教程 Mar 14, 2024 pm 03:28 PM

  Excel表格是现在很多人都在使用的办公软件之一,有些用户因为电脑是win11系统,因此显示的是英文界面,想要切换成中文界面,但是不知道应该怎么操作,针对这个问题,本期小编就来为广大用户们进行解答,一起来看看今日软件教程所分享的内容吧。  Excel切换中文操作教程:  1、进入软件,点击页面上方工具栏左侧的“File”选项。  2、在下方给出的选项中选择“options”。  3、进入新界面后,点击左侧的“language”选项

如何在PHP Dompdf中正确显示中文字符 如何在PHP Dompdf中正确显示中文字符 Mar 05, 2024 pm 01:03 PM

如何在PHPDompdf中正确显示中文字符在使用PHPDompdf生成PDF文件时,遇到中文字符显示乱码的问题是一个常见的挑战。这是因为Dompdf默认使用的字体库中不包含中文字符集。为了正确显示中文字符,我们需要手动设置Dompdf的字体,并确保选择支持中文字符的字体。以下是一些具体的步骤和代码示例来解决这个问题:第一步:下载中文字体文件首先,我们需要

wwe2k24会有中文吗 wwe2k24会有中文吗 Mar 13, 2024 pm 04:40 PM

《WWE2K24》乃由VisualConcepts倾力打造的竞速体育游,已于2024年3月9日正式问世。此款游戏倍受赞誉,众多玩家热切关注其是否设有中文版。遗憾的是,迄今为止,《WWE2K24》尚未推出中文语言版本。wwe2k24会有中文吗答:目前不支持中文。WWE2K24在Steam国区的标准版售价为199元,豪华版为329元,纪念版为395元。该游戏的配置要求较高,无论处理器、显卡或运行内存等方面,均有一定标准。官方推荐配置以及最低配置介绍:

VSCode 设置中文:完全指南 VSCode 设置中文:完全指南 Mar 25, 2024 am 11:18 AM

VSCode设置中文:完全指南在软件开发中,VisualStudioCode(简称VSCode)是一个常用的集成开发环境。对于使用中文的开发者来说,将VSCode设置为中文界面可以提升工作效率。本文将为大家提供一个完整的指南,详细介绍如何将VSCode设置为中文界面,并提供具体的代码示例。第一步:下载安装语言包在打开VSCode后,点击左

修复PHP Dompdf中文乱码的有效途径 修复PHP Dompdf中文乱码的有效途径 Mar 05, 2024 pm 04:45 PM

标题:修复PHPDompdf中文乱码的有效途径在使用PHPDompdf生成PDF文档时,中文字符出现乱码是一个常见的问题。这一问题通常源于Dompdf默认不支持中文字符集,导致中文内容无法正确显示。为了解决这一问题,我们需要采取一些有效的途径来修复PHPDompdf中文乱码的问题。1.使用自定义字体文件一个解决Dompdf中文乱码问题的有效途径是使用

如何将windows 7的语言设置为中文 如何将windows 7的语言设置为中文 Dec 21, 2023 pm 10:07 PM

有些朋友可能会在安装系统时不小心设置成了英文,结果所有界面都变成了英文,看都看不懂。其实我们可以在控制面板中设置语言,将语言更改为中文,下面就一起来看一下更改的方法吧。win7如何更改语言为中文1、首先点击屏幕左下角的按钮,然后选择“ControlPanel”2、找到“Clock,Language,andRegion”下的“Changedispalylanguage”3、点击下方“English”就可以在下拉菜单中选择简体中文了。4、确定之后点击“Logoffnow”注销并重启电脑。5、回来之后

夸克浏览器怎么设置为中文 设置中文翻译的方法 夸克浏览器怎么设置为中文 设置中文翻译的方法 Mar 12, 2024 pm 02:10 PM

  夸克浏览器软件内提供的资源信息数不胜数,并且搜索结果都是最准确的,内置强大的搜索引擎,输入关键词就能找到相对应的答案,整体的上网体验非常好。不同领域的浏览板块都是开放的,搜你所搜看你所看,都能第一时间找到,烦人的广告弹窗全部屏蔽,烦人的广告弹窗全部屏蔽,自由切换不同的浏览模式,上网过程完全没有卡顿,当然还能开启翻译功能,任何国家的语言都可以轻松翻译,交流沟通没有任何问题,兼容各种格式的文件文档,都可以打开一看,现在小编在线详细为夸克浏览器用户们带来设置中文翻译的方法。  1.首先点击手机桌面

See all articles