当前位置: 首页 » 网站建设 » 网站建设知识 » 正文

关于mysql乱码问题的天坑

发布时间:2025-07-22 以下文章来源于网友投稿,内容仅供参考!

关于mysql乱码问题的天坑。搞了个基于Mysql的web应用,一开始只是展示数字,中文字典信息,没有什么问题。后面增加了用户录入中文,就出现了乱码。搞了两个晚上,踩坑无数,下面把心路历程罗列一下,算是个总结。

1.先查看了mysql编码相关的知识,知道mysql编码分的很细致,有基于服务器的,操作系统的,数据库的,表的,字段的。在读取的时候,又有基于connection的,result的。最终存储在磁盘file上,只有一种就是binary,二进制文件。

2.最好的办法,当然是把各个环节的字符编码都设置成一样的,一般来说utf8比较好。好的,请注意,坑来了!

3.第一坑,我当时安装的解压版,没有设置字符集这个环节,根据网上各种帖子设置my-default.ini都只能改到这个程度:

character_set_clientutf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem BINARY
character_set_results utf8
character_set_server latin1
character_set_system utf8

也就是说character_set_server这一个还是不行,而且latin1是拉丁文编码,无论如何都兼容不了中文的。如上所述,整个环节中只要有一个出现乱码,后面就乱的回不来了。

4.第二坑,网上各种修改my.ini,my-default.ini都是改不了character_set_server的,虽然可以在命令行通过setcharacter_set_server=utf8,但是这是基于session的修改,关了之后就没了。

5.第三坑,比较靠谱的办法是,运行bin/MySQLInstanceConfig.exe,重新配置数据库设置。但是,回到第一坑,解压版,没有这个工具。

6.第四坑,好吧,我下一个安装版吧,只找得到最新版的安装版,并不能解决当前版本的问题。如果安装过程出问题,要影响应用的运行,我已经不想在这个问题上走这么远了。

7.绕了一圈,数据库端彻底解决问题的思路和办法都有,只是当前环境下不好实施。

8.最终解决办法:客户端为了把中文传输到Java后台用encodeURI对前段输入进行编码,后台直接存到表字段中;前台展示时,使用decodeURI解码。“完美”!

  • • 宝塔面板中如何在终端重启服务器

    宝塔面板中如何在终端重启服务器宝塔面板是一款功能强大的服务器管理面板,可以帮助管理员简化服务器操作。当需要重启服务器时,

  • • 宝塔面板如何在线编辑

    宝塔面板如何在线编辑宝塔面板是一款功能强大的服务器管理面板,它提供了很多方便实用的功能。其中之一就是在线编辑文件的功能,

  • • 宝塔面板需要什么

    宝塔面板需要什么宝塔面板是一款非常流行的服务器管理软件,广泛应用于网站搭建和服务器管理。使用宝塔面板可以简化服务器操作,

  • • 如何备案阿里云服务器地址

    如何备案阿里云服务器地址备案是指互联网信息服务提供者按照国家相关规定,将其域名与服务器地址等信息进行报备并获得许可的过程

  • • 高级宝塔面板怎么拆卸视频

    高级宝塔面板怎么拆卸视频今天我们来分享一下高级宝塔面板的拆卸方法。以下是详细步骤:首先,确保你已经备份了所有数据,并且登

  • ehviewer官网下载网站入口
    51漫画APP最新官方版下载
    免费追剧app软件下载
    茶杯狐cupfox官方app下载
    海马云电脑app下载
    joiplay官方下载
    局域网IP扫描软件下载
    暗部口袋2025最新版下载
    雷霆加器速官网下载
    快看浏览器下载
    失信人信息查询:http://zxgk.court.gov.cn
    2025白露是哪一天?白露是几月几日几时几分几秒
    白露是几月几日2025?2025年白露阳历时间
    无尽冬日最强阵容是什么?
    无尽冬日英雄培养顺序
    二手房需要维修基金吗?维修基金使用的条件
    买房摇号要摇到号才能选房吗?摇号选房的大概流程
    购买法拍房需要交哪些税费?买法拍房需注意什么问题
    2025年阅兵具体日期是哪天?2025年阅兵的具体时间表
    2025年9月3日北京交通管制情况如何?2025年阅兵期间如何绕行北京?