在MySQL中手动插入数据显示正常,java程序执行插入中文显示"??"的问题:
首先查看数据库编码格式,设置character为utf8
查看页面文件里pageEncoding以及contentType编码格式设置是否正确。
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="utf-8"%>
在Servlet中设置获取请求与返回参数的编码格式为utf8,
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
最后检查在获取数据库连接对象传递的URL参数设置,后面添加编码格式设置?useUnicode=true&characterEncoding=utf-8。
private static final String URL = "jdbc:mysql://127.0.0.1:3306/mavenjy?useUnicode=true&characterEncoding=utf-8";