报错处理:传汉字到mysql数据库,显示问号的解决方法

翻了翻老demo,想跑一圈,结果发现了如题所述的问题。
在流程中,如果一个方面出现了问题,那么全盘皆输。
我习惯于按照一定顺序、逐步筛查来寻找代码问题。
本篇以用途广泛的UTF-8做例子,思路如下:

1、检查jsp显示页面

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

检查jsp开头有没有设置UTF-8的字符集

2、检查后台逻辑代码

根据前台展示页面,找到后台代码,
一般设置编码有如下几种方式:

设置request

request.setCharacterEncoding("UTF-8");

设置response

response.setCharacterEncoding("UTF-8");
response.setContentType("text/html;charset=UTF-8");
response.setHeader("Content-Type","text/html;charset=UTF-8");

3、检查数据库字符集

mysql中可以设置数据库字符集,

数据库字符集

也可以设置表的字符集

表的字符集

4、变更数据库URL

在连接数据库的URL属性中添加useUnicode=true&characterEncoding=utf8
我直接添加的characterEncoding=utf8
最终解决了我的中文乱码问题

参考:
http://blog.csdn.net/superbeck/article/details/5347815
https://segmentfault.com/q/1010000006021630

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值