mysql post 中文乱码_mysql/mariaDB中文乱码问题的处理

使用mysql/MariaDB数据库插入中文,查询发现乱码?

mariaDB [lhc]> select * from python_test;

+----+-----------+------------+

| id | name      | class_time |

+----+-----------+------------+

|  1 | ??        |          3 |

|  2 | ??        |          2 |

|  3 | ??        |          5 |

|  4 | ???       |          2 |

|  5 | ???       |          2 |

+----+-----------+------------+

5 rows in set (0.00 sec)

原来是编码设置有问题。查看下MariaDB的默认编码格式

MariaDB [lhc]> show variables like "character_set_%" ;

+--------------------------+----------------------------+

| Variable_name            | Value                      |

+--------------------------+----------------------------+

| character_set_client     | utf8                       |

| character_set_connection | latin1                     |

| character_set_database   | latin1                     |

| character_set_filesystem | binary                     |

| character_set_results    | utf8                       |

| character_set_server     | latin1                     |

| character_set_system     | utf8                       |

| character_sets_dir       | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

将数据库以及表的编码均按照如下修改,然后重新插入数据到表中,即可

/*修改数据库编码*/

MariaDB [lhc]> ALTER database python_test character set utf8;

/*修改表的编码*/

MariaDB [lhc]> ALTER table python_test character set utf8;

再查询,结果正常了。

不过通过java操作MYSQL数据库,显示在WEB页面上,还是乱码,这是怎么回事呢?

d82780e82de9a5a18cdc8e8c8e727083.png

原来问题出在HttpServletResponse上。在返回结果之前,应当加一句:response.setCharacterEncoding("utf-8");

当然,在使用get或者post获取传来的参数,也需要使用request.setCharacterEncoding("UTF-8"),以免乱码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值