• mysql jsp servlet 中文乱码问题。


    google一下。。你可以找一大堆解决方案。。但是我觉得都没有从根本上解决问题。。是不是?

    我觉得要想根本解决。。最主要的方法是统一编码方案。。说出来很简单。。原因也很简单。。但你真的做到了吗。。

    首先不论你写的是jsp servlet html 等都必须显示标明contentType为UTF-8(强烈推荐是UTF-8..windows默认应该是GBK 什么2312的。。)。。

    然后request也要设置同样的编码方案。。不解释。。原因。。就像说话。。如果你说中文。另一个人说英语。。还有一个说阿拉伯。。你行吗?

    这样之后。。你的工作只解决了一半,。。mysql还要设置统一编码方案。。对吧。。在mysql配置文件my.cnf ,windows应该是my.ini,在client后面统一用UTF-8.加上

    default-character-set=utf8(不要写出UTF-8,容易造成参数解析)。。然后服务器也要设置。。在mysqld下添加:character-set-server=utf8..之后在试下效果如何呢?

    还是乱码对不对?

    没错。。因为数据库。还是使用其他编码。。你进入mysql下。。输入status。显示四个编码。。是一样的吗。。不一样的话还是有问题。。

    怎么办。。临时的话可以使用set nemes utf8 但没有用。。想要长期有效。。可以这样。。试试:alter database databasename character set utf8 。。这样再status下。。看看是不是一样的了?

    好了。。事情算是完成了。。但你会发现你现在连中文都插入不进去。。提示什么非法字符。。这岂不是事情更糟了吗?

    对。。事情发展成这样了。。原因是你建表的时候编码依然不是utf8,你可以试试:show create table tablename 。。发现了吗。。默认建表是什么呢?

    所以要想完全解决问题。。只有重新建表。。很麻烦不是?备份吧。。方法还用多说吗?上面的日志写得很清楚了。。自己看看吧。。


    注意:无论你改了什么配置。。都不会默认自动生效。。需要重启mysql 。。。。不会的话重启电脑。。。


    还要注意的是好像windows下的虚拟dos不支持utf8.所以如果还是不能解决问题。。可能是你的系统问题。。装linux吧。。

  • 相关阅读:
    对数据库进行增删改查操作
    Chromium网页Graphics Layer Tree创建过程分析
    苹果产品设计中鲜为人知的10个细节
    翻翻git之---自己定义邮件发送buttonSendButton(流程分析,实现思路能够学习下)
    pascal+sublime搭建Pascal学习环境
    我们的一个已投产项目的高可用数据库实战
    开源 免费 java CMS
    上海居住证续签流程须知
    【LeetCode OJ 232】Implement Queue using Stacks
    Android学习笔记之:android更新ui的几种经常用法
  • 原文地址:https://www.cnblogs.com/int32bit/p/3187784.html
Copyright © 2020-2023  润新知