前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Java读取Mysql中文乱码

Java读取Mysql中文乱码

作者头像
birdskyws
发布2018-09-12 15:51:41
6K0
发布2018-09-12 15:51:41
举报

load data infile "sql.txt" table a fields terminate by "," 当sql.txt中有中文,用java或者client端输出出现中文乱码。

一、locale 查看Client语言

代码语言:javascript
复制
>locale
LANG="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_CTYPE="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_ALL=

二、locale修改mysql服务器编码

代码语言:javascript
复制
>export LC_ALL="zh_CN.UTF-8"
locale: Cannot set LC_CTYPE to default locale: No such file or directory
locale: Cannot set LC_MESSAGES to default locale: No such file or directory
locale: Cannot set LC_ALL to default locale: No such file or directory
....

服务器端不支持中文编码,运行下面的命令安装中文支持。

代码语言:javascript
复制
yum install kde-l10n-Chinese
yum reinstall glibc-common

设置服务器端LC_ALL,此时服务器端和Client端编码相同

代码语言:javascript
复制
>export LC_ALL="zh_CN.UTF-8"
>locale
LANG=
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8

三、修改mysql默认编码

查看编码

代码语言:javascript
复制
show variables like '%char%';

设置全局编码为UTF-8,修改my.cnf文件。

代码语言:javascript
复制
[mysqld]
character-set-server=utf8 
[client]
default-character-set=utf8 
[mysql]
default-character-set=utf8

配置完成,重启mysql,查看编码。

代码语言:javascript
复制
mysql> show variables like '%char%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

四、创建表

DEFAULT CHARSET=utf8

代码语言:javascript
复制
create table shop_info(
    `shop_id` int(10) PRIMARY KEY,  
    `city_name` varchar(100),
    `location_id` varchar(10),
    `per_pay`int(10),
    `score` int(10),
    `comment_cnt` int(10),
    `shop_level` int(10),
    `cate_1_name` varchar(50),
    `cate_2_name` varchar(50),
    `cate_3_name` varchar(50)
)DEFAULT CHARSET=utf8;

总结

当完成以上全部配置,load data infile 文件装载到数据库,用client端读取,能正确显示中文。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.09.08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、locale 查看Client语言
  • 二、locale修改mysql服务器编码
  • 三、修改mysql默认编码
  • 四、创建表
  • 总结
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档