mybatis + mysql + mac navicat 中文乱码问题
mybatis mysql mac navicat 中文乱码问题 mybatis a配置文件 bwebxml mysql 建表语句 配置文件 navicat
如果以上任何地方出现中文乱码,请对照如下先后顺序,一一查看。
1.mybatis
a.配置文件:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "mybatis.org/dtd/mybatis-3-config.dtd"><configuration> <!-- development:开发模式 work:工作模式 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/youdatabasename?characterEncoding=utf-8"/> <property name="username" value="root"/> <property name="password" value="1234"/> </dataSource> </environment> </environments> <mappers> <mapper class="com.youpackage.DataMapper"/> </mappers> </configuration>
注意上面的url属性,后面只需要加characterEncoding=utf-8,多余的先删掉。
b.web.xml
过滤器配置
<filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
2.mysql
建表语句:
CREATE TABLE `user` ( `id`........ PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
注意结尾设置utf8,这里使用的是utf8mb4,支持emoji表情。
配置文件
osx的配置文件在/usr/local/mysql-5.7.16-osx10.11-x86_64/support-files中,文件名为my-default.cnf(windows中为my.ini,linux中为
my.cnf),这个文件不可编辑,首先,复制到文稿中,然后编辑。
# For advice on how to change settings please see# dev.mysql/doc/refman/5.7/en/server-configuration-defaults.html# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the# *** default location during install, and will be replaced if you# *** upgrade to a newer version of MySQL.[client]default-character-set = utf8mb4[mysql]default-character-set = utf8mb4[mysqld]character-set-client-handshake = FALSEcharacter-set-server = utf8mb4collation-server = utf8mb4_unicode_ci# Remove leading # and set to the amount of RAM for the most important data# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.# innodb_buffer_pool_size = 128M# Remove leading # to turn on a very important data integrity option: logging# changes to the binary log between backups.# log_bin# These are commonly set, remove the # and set as required.# basedir = .....# datadir = .....# port = .....# server_id = .....# socket = .....# Remove leading # to set options mainly useful for reporting servers.# The server defaults are faster for transactions and fast SELECTs.# Adjust sizes as needed, experiment to find the optimal values.# join_buffer_size = 128M# sort_buffer_size = 2M# read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
全文替换即可,如果你的不是utf8mb4,那就把这个改成utf8。
navicat
编辑Connection属性为Auto即可。