MySQL的字符集以及中文乱码问题

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:

创建数据库:CREATE DATABASE IF NOT EXISTS liu_yan_ban2 default charset utf8 COLLATE utf8_general_ci; 


[sql] view plaincopy

  1. CREATE TABLE liuyan_temp(  

  2.   id int(6) NOT NULL auto_increment,  

  3.   url varchar(100) default '#',  

  4.   ip varchar(20) default NULL,  

  5.   email varchar(50) default '#',  

  6.   qq varchar(20) default NULL,  

  7.   sj varchar(30) default NULL,  

  8.   content text,  

  9.   xm varchar(20) default '没有姓名',  

  10.   KEY id (id)  

  11. default charset=utf8;  




然后通过后面的set命令把所有character_set之类的变量全部设置成utf8

变量character_set_client还不能设置成utf8,否则,在mysql>提示符下都插入不了中文字段,都无法运行上面的sql,而必须把第9行改成字母。所以,要设成gb2312

必须把character_set_results设置成gb2312,如果设置成utf8,则显示的还是乱码:


查看字符集设置

mysql>show variables like 'collation_%';
mysql>show variables like 'character_set_%';

通过MySQL命令行修改:
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;

mysql> set collation_database=utf8;

mysql> set collation_server=utf8;

连接数据库字符串的写法

String dbUrl = "jdbc:mysql://localhost:3306/db_CityInfo?useUnicode=true&characterEncoding=utf-8"


[java] view plaincopy

  1. Class.forName("com.mysql.jdbc.Driver").newInstance();  

  2.      String url ="jdbc:mysql://"+dbip+":3306/liu_yan_ban2?user="+use+"&password="+pass+"&useUnicode=true&characterEncoding=gb2312" ;  

  3.      conn= DriverManager.getConnection(url);  




//infoSingle.setInfoTitle(rs.getString("info_title"));
String temp=rs.getString("info_title");
temp=new String(temp.getBytes("iso-8859-1"),"gb2312");
System.out.println("刘利新");
System.out.println(temp);
infoSingle.setInfoTitle(temp);

折腾了一晚上,这才见到点中文











本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1540012,如需转载请自行联系原作者
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
关系型数据库 MySQL 存储
【MySQL】——数据类型及字符集
【MySQL】——数据类型及字符集
【MySQL】——数据类型及字符集
|
4月前
|
存储 人工智能 搜索推荐
详解MySQL字符集和Collation
MySQL支持了很多Charset与Collation,并且允许用户在连接、Server、库、表、列、字面量多个层次上进行精细化配置,这有时会让用户眼花缭乱。本文对相关概念、语法、系统变量、影响范围都进行了详细介绍,并且列举了有可能让字符串发生字符集转换的情况,以及来自不同字符集的字符串进行比较等操作时遵循的规则。对于最常用的基于Unicode的字符集,本文介绍了Unicode标准与MySQL中各个字符集的关系,尤其详细介绍了当前版本(8.0.34)默认字符集utf8mb4。
|
2月前
|
存储 人工智能 关系型数据库
MySQL 8.0 字符集与比较规则介绍
我们都知道 MySQL 8.0 与 MySQL 5.7 的区别之一就是默认字符集从 latin1 改成了 utf8mb4 ,除此之外,MySQL 8.0 下的字符集和比较规则还有没有其他变化呢?本篇文章我们一起来学习下。
43 1
|
3月前
|
存储 自然语言处理 关系型数据库
|
4月前
|
存储 关系型数据库 MySQL
MySQL各字符集、排序规则的由来、用法,区别和联系
MySQL支持多种字符集和排序规则,这些在数据库设计和数据处理中起着重要作用。下面是它们的由来、用法、区别和联系: 1. **字符集(Character Set)**: - **由来**:字符集定义了数据库中可以存储的字符集合,以及这些字符在数据库中的存储方式。 - **用法**:在创建数据库或表时,可以指定所需的字符集。常见的字符集包括UTF-8、UTF-16、Latin1等。 - **区别和联系**:不同的字符集支持不同的字符范围和存储方式,选择合适的字符集可以确保数据的正确存储和处理。例如,UTF-8支持全球范围内的大多数字符,而Latin1只支持西欧语言字符集。
|
4月前
|
存储 数据可视化 关系型数据库
Mysql字符集
Mysql字符集
|
4月前
|
存储 SQL 关系型数据库
详解MySQL字符集和Collation
详解MySQL字符集和Collation
279 2
|
4月前
|
关系型数据库 MySQL Shell
Windows下的mysql字符集格式修改
在Windows上的MySQL 5.7.17,若安装时未设置字符集,可能导致乱码问题。本文提供了解决方案:首先,通过`mysql -uroot -p`登录并使用`show variables like '%char%';`查看当前字符集。然后,有两种修改方法:一是使用Shell命令临时修改9个相关属性为utf8;二是永久修改,在my.ini配置文件中将[mysqld]、[client]、[mysql]下的字符集改为utf8。记得重启MySQL服务以应用更改。此外,还提供了修改数据库和表字符集的SQL命令。
|
4月前
|
存储 关系型数据库 MySQL
【2024】新建mysql数据库,如何选择字符集和排序规则
【2024】新建mysql数据库,如何选择字符集和排序规则
427 1
|
4月前
|
存储 关系型数据库 MySQL
从零开始学Mysql - 字符集和编码(下)
从零开始学Mysql - 字符集和编码(下)
131 0

热门文章

最新文章

下一篇
DDNS