java1.8配上mysql8.0.12由于utf-8mb4导致java控制台显示中文乱码,问题没有解决,记录下问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java1.8配上mysql8.0.12由于utf-8mb4导致java控制台显示中文乱码,问题没有解决,记录下问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2986字,纯文字阅读大概需要5分钟。
内容图文
![java1.8配上mysql8.0.12由于utf-8mb4导致java控制台显示中文乱码,问题没有解决,记录下问题](/upload/InfoBanner/zyjiaocheng/922/511e21581e4d4d38bdfa27c5b1369087.jpg)
根据https://www.cnblogs.com/roucheng/p/javamysql.html的内容;
【 当然,首先要安装有JDK(一般是JDK1.5.X)。然后安装MySQL,这些都比较简单,具体过程就不说了。配置好这两个环境后,下载JDBC驱动mysql-connector-java-5.0.5.zip(这个是最新版的)。然后将其解压缩到任一目录。我是解压到D盘,然后将其目录下的mysql-connector-java-5.0.5-bin.jar加到classpath里,具体如下:“我的电脑”-> “属性” -> “高级” -> “环境变量”,在系统变量那里编辑classpath,将D:\mysql-connector-java-5.0.5\mysql-connector-java-5.0.5-bin.jar加到最后,在加这个字符串前要加“;”,以与前一个classpath区分开。然后确定。
环境配置好了,很简单。现在,先配置MySQL,设其用户名为“root”,密码为“root”。在命令行或用一个SQL的前端软件创建Database。
我是用SQLyog的前端软件来创建Database的。
先创建数据库:
CREATE DATABASE SCUTCS;
接着,创建表:
CREATE TABLE STUDENT
(
SNO CHAR(7) NOT NULL,
SNAME VARCHAR(8) NOT NULL,
SEX CHAR(2) NOT NULL,
BDATE DATE NOT NULL,
HEIGHT DEC(5,2) DEFAULT 000.00,
PRIMARY KEY(SNO)
);
然后插入数据,可以用SQL语句insert into <表名> values (value1, value2, ...); 也可以用SQLyog来操作】
我配置了mysql8.0.12,并根据它的utf-8改变了它的格式在my.ini。不过由于mysql是默认utf-8mb4【utf8在其他的软件都是4字节的,在mysql程序员标榜自己的独特性搞成了3字节,后来为了通用性及一些特殊问题,搞出了个utf-8mb4,实际上与其他软件的utf-8一模一样】
然后根据代码:
import java.sql.*;
public class JDBCTest {
public static void main(String[] args){
// 驱动程序名
String driver = "com.mysql.jdbc.Driver";
// URL指向要访问的数据库名scutcs
String url = "jdbc:mysql://127.0.0.1:3306/scutcs?characterEncoding=utf8mb4&serverTimezone=GMT%2B8&useSSL=false";
// MySQL配置时的用户名
String user = "root";
// MySQL配置时的密码
String password = "root";
try {
// 加载驱动程序
Class.forName(driver);
// 连续数据库
Connection conn = DriverManager.getConnection(url, user, password);
if(!conn.isClosed())
System.out.println("Succeeded connecting to the Database!");
// statement用来执行SQL语句
Statement statement = conn.createStatement();
// 要执行的SQL语句
String sql = "select * from student";
// 结果集
ResultSet rs = statement.executeQuery(sql);
System.out.println("-----------------");
System.out.println("执行结果如下所示:");
System.out.println("-----------------");
System.out.println(" 学号" + "\t" + " 姓名");
System.out.println("-----------------");
String name = null;
while(rs.next()) {
// 选择sname这列数据
name = rs.getString("sname");
/* 何问起 hovertree.com */
// 首先使用ISO-8859-1字符集将name解码为字节序列并将结果存储新的字节数组中。
// 然后使用GB2312字符集解码指定的字节数组
name = new String(name.getBytes("ISO-8859-1"),"GB2312");
// 输出结果
System.out.println(rs.getString("sno") + "\t" + name);
}
rs.close();
conn.close();
} catch(ClassNotFoundException e) {
System.out.println("Sorry,can`t find the Driver!");
e.printStackTrace();
} catch(SQLException e) {
e.printStackTrace();
} catch(Exception e) {
e.printStackTrace();
}
}
}
出现了不识别utf-8mb4,接着改为utf8,出现:
中文字显示不了。
问题不知道怎么解决。
内容总结
以上是互联网集市为您收集整理的java1.8配上mysql8.0.12由于utf-8mb4导致java控制台显示中文乱码,问题没有解决,记录下问题全部内容,希望文章能够帮你解决java1.8配上mysql8.0.12由于utf-8mb4导致java控制台显示中文乱码,问题没有解决,记录下问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。