-
java web 插入中文显示问号,mysql内同样显示问号。
2018-11-29 19:11:00问题描述:用eclipseEE打开jsp文件插入数据到数据库时,中文出现问号。 win10系统,mysql-5.6.41-winx64 解决方案: 打开mysql根目录,寻找到my-default.ini 记事本打开如下: 在开头添加如下代码 ...问题描述:用eclipseEE打开jsp文件插入数据到数据库时,中文出现问号。
win10系统,mysql-5.6.41-winx64
解决方案:
- 打开mysql根目录,寻找到my-default.ini
- 记事本打开如下:
- 在开头添加如下代码
[mysql] default-character-set=utf8
- 再插入时即正常,无论是通过jsp插入还是用mysql插入。
-
java mysql update 乱码_java插入mysql问号乱码
2021-01-27 01:17:31问题描述MySQL默认编码是latin1,使用MySQL客户端(Navcat for MySQl或MySQL client)插入中文数据,内容显示正常,但使用Java程序插入中文数据出现中文乱码(问号)。mysql> show variables like 'character%';+----...问题描述
MySQL默认编码是latin1,使用MySQL客户端(Navcat for MySQl或MySQL client)插入中文数据,内容显示正常,但使用Java程序插入中文数据出现中文乱码(问号)。
mysql> show variables like 'character%';
+--------------------------+----------------------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | D:\mysql\mysql-5.6.27-winx64\share\charsets\ |
+--------------------------+----------------------------------------------+
mysql> create table `messages` (
-> `id` int(4) not null,
-> message varchar(50) not null
-> ) engine=myisam default charset=utf8;
Query OK, 0 rows affected
mysql> insert into messages (message) values ("测试MySQL中文显示");
Query OK, 1 row affected
mysql> select * from messages;
+----+-------------------+
| id | message |
+----+-------------------+
| 0 | 测试MySQL中文显示 |
+----+-------------------+
1 row in set
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JDBCTest {
public static void main(String[] args) {
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost:3306/test";
String user = "root";
String password = "root";
try {
Class.forName(driver);
Connection conn = DriverManager.getConnection(url, user, password);
Statement stmt = conn.createStatement();
stmt.executeUpdate("insert into messages (message) values ('测试MySQL编码')");
ResultSet rs = stmt.executeQuery("select * from messages");
while (rs.next()) {
int id = rs.getInt("id");
String message = rs.getString("message");
System.out.println(id + " " + message);
}
rs.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
程序输出
1 ????MySQL????????
2 ??MySQL??
问题解决
我们看到,尽管使用数据库是我们能够正常添加和显示中文,但是在使用java程序链接数据库时并不能正常显示中文,为此我们需要修改MYSQL的默认编码,编辑my.ini(MySQL配置文件)对默认编码进行修改,设置MySQL的默认字符集为utf8:
找到客户端配置[client]在下面添加:
default-character-set=utf8
找到服务配置[mysqld]在下面添加:
default-character-set=utf8
设定MySQL数据库以utf8编码运行,连接MySQL数据库时使用utf8编码。重启MySQl服务
windows
net stop mysql
net start mysql
linux
service mysqld restart
常见问题
在修改配置文件之后,可能存在mysql无法启动的意外情况;原因可能是出在了MySQL版本问题,试着修改如下写法:
character-set-server=utf8
-
JAVA 向mysql数据库插入中文字符都是问号的解决方法
2020-07-12 15:37:02JAVA 向mysql数据库插入中文字符都是问号的解决方法JAVA 向mysql数据库插入中文字符都是问号的解决方法
参考文章:
(1)JAVA 向mysql数据库插入中文字符都是问号的解决方法
(2)https://www.cnblogs.com/jurkymaomao/p/6539457.html
备忘一下。 -
mysql用java程序插入中文变问号
2013-09-17 15:24:20当我把得到的记录进行处理之后,新建了表B,然后往表B中插入记录时一直无法插入,打印sql语句发现其中的中文部分全部都是问号。按照网友分享的方法,执行以下命令,得到的结果显示并不能解决问题。 先检查各个字符...问题描述:
我用程序读取 数据库中的某个表A中的记录的时候,得到的中文是正确的。当我把得到的记录进行处理之后,新建了表B,然后往表B中插入记录时一直无法插入,打印sql语句发现其中的中文部分全部都是问号。按照网友分享的方法,执行以下命令,得到的结果显示并不能解决问题。
先检查各个字符集:
再检查 表B 的每个列的字符集mysql> show variables like 'character%'; +--------------------------+----------------------------------+ | 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/local/mysql/share/charsets/ | +--------------------------+----------------------------------+ 8 rows in set
注意上面的 utf8_general_ci和utf8_unicode_ci 似乎没有太大影响。(原本应该都是utf8_general_ci,由于在插入语句添加了修改语句,正常情况下统一的)mysql> show full columns from dumatch_tmp_table; +-------+--------------+-----------------+------+-----+---------+-------+----------------------+---------+ | Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment | +-------+--------------+-----------------+------+-----+---------+-------+----------------------+---------+ | id | varchar(200) | utf8_unicode_ci | YES | | NULL | | select,insert,update | | | dxid | varchar(200) | utf8_unicode_ci | YES | | NULL | | select,insert,update | | | yw | longtext | utf8_general_ci | YES | | NULL | | select,insert,update | | +-------+--------------+-----------------+------+-----+---------+-------+----------------------+---------+ 3 rows in set
发现以上步骤都显示出数据库从 数据库-->表---->列 都是统一的编码格式,都是使用了 万无一失的utf8 编码。问题依然存在。
于是我参考一个帖子中其他网友的讨论。http://bbs.csdn.net/topics/300065011。 这个帖子关键一点是,有些人通过在执行插入记录之前执行一条语句
mysql> set names utf8; Query OK, 0 rows affected
有些人是因为数据库本身编码没有设置好,导致后面新建的表无论怎样都有问题,因此新建表中的列也存在问题。所以通过以下语句检查 数据库和数据表编码。显然我的都是没有问题的,统一都是utf8
mysql> show create database test; +----------+---------------------------------------------------------------+ | Database | Create Database | +----------+---------------------------------------------------------------+ | test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ | +----------+---------------------------------------------------------------+ 1 row in set mysql> show create table dumatch_tmp_table; +-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ | dumatch_tmp_table | CREATE TABLE `dumatch_tmp_table` ( `id` varchar(200) DEFAULT NULL, `dxid` varchar(200) DEFAULT NULL, `yw` longtext ) ENGINE=InnoDB DEFAULT CHARSET=utf8 | +-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set
都说问题解决了。然而我的问题似乎依然存在。于是参考另外一篇文章。
http://blog.csdn.net/tsingheng/article/details/8221482
这篇文章的关键点 是在连接数据库时,后面将连接字符串改为jdbc:mysql://xxxxx:3306/dbnameuseUnicode=true&characterEncoding=utf-8解决问题。
嗯。我的问题到此也算是完美解决了。
-
java mysql 中文问号_第17章,java向mysql中插入汉字,都是问号的问题。解决方案...
2021-01-19 06:05:13作为一个新手,花了我好多好多精力,网上查了无数的解决方法。从中午11点40到夜晚7点30晚饭都没吃,挨个实验,挨个解决,其中mysql写了装,装了...第二步,在java中,连接mysql时,其中声明数据库的url时,必须用语... -
java程序向mysql插入中文变问号
2012-11-25 09:47:12我碰到的问题是使用客户端工具插入中文是没问题的,但是用java程序就变成问号了。 遇到这种问题肯定是字符集造成的,先检查数据库,表的字符集,都是utf8,然后看页面,程序等等等等都是utf8都没问题,然后将连接... -
java mysql 插入中文_java通过jdbc插入中文到mysql显示异常(问号或者乱码)
2021-01-18 22:06:45首先本人菜鸡一个,如果有说错的地方,还请大家指出予批评对于很多初学者来说,中文字符编码不相同的问题,是一个很烦躁的问题!!因为很多时候,我们并不知道,到底是哪一层出现了问题?在这里稍微做个总结~也怕... -
java程序向mysql插入中文变问号的总结
2013-11-08 17:05:42java程序向mysql插入中文变问号 走在岸上DE鱼说的对,【http://blog.csdn.net/tsingheng/article/details/8221482】 遇到这种问题肯定是字符集造成的,先检查数据库,表的字符集,都是utf8, 然后看页面,程序等等... -
在mysql工具插入中文正常,在java中插入中文全部显示问号???
2016-08-16 09:53:42,检查了所有的页面设置和工作空间设置都是utf-8,于是用mysql工具直接插入发现可以正常插入中文,看到博友走在岸上的鱼的文章,发现可能是客户端在连接数据库时默认是GBK格式的,于是乎将连接字符串改为jdbc:mysql:/... -
java存入数据库是问号_Java插入中文到数据库中文变成问号解决
2021-03-08 07:03:45转自:... eclipse和mysql数据库中的编码方式是否一致2. 在链接数据时,有没有在url里面加上characterEncoding=utf8,也就是下图这样 如果都解决了基本就没有问题了。但是我"确定"了以上的方式都... -
navacat输入mysql中文显示问号_解决JAVA给mySQL写数据,navicat中的数据显示问号
2021-03-04 06:43:45@解决JAVA给mySQL写数据,navicat中的数据显示问号通过MyEclipse向mySQL插入数据,使用navicat查看数据,数据是问号做项目,用MyEclipse向数据库写数据,利用navicat登陆mySQL数据表,发现数据是问号。在网上搜索... -
java jdbc mysql 乱码_java通过jdbc插入中文到mysql显示异常(问号或者乱码)
2021-01-27 01:15:32首先本人菜鸡一个,如果有说错的地方,还请大家指出予批评对于很多初学者来说,中文字符编码不相同的问题,是一个很烦躁的问题!!因为很多时候,我们并不知道,到底是哪一层出现了问题?在这里稍微做个总结~也怕... -
java调用mysql后乱符_java通过jdbc插入中文到mysql显示乱码(问号或者乱码)
2021-01-19 06:24:34对于很多初学者来说,中文字符编码不相同的问题,是一个很烦躁的问题!!因为很多时候,我们并不知道,到底是哪一层出现了问题?在这里稍微做个总结~也怕自己今后忘了!!其实也就三层:1、前端页面2、后台代码3、... -
java通过jdbc插入中文到mysql显示异常(问号或者乱码)
2020-02-17 20:02:33mysql如果我们的字符集没有设置,或者没有设置好的话,默认是latin1 这是如果我们从后台传入UTF-8的数据就会出现问题 我遇到的就是中文在数据库中显示???(问号) 解决办法: jdbc:mysql://localhost:3306/test?... -
mysql jdbc 中文不能写入_java通过jdbc插入中文到mysql显示异常(问号或者乱码)
2021-01-19 19:35:28首先本人菜鸡一个,如果有说错的地方,还请大家指出予批评对于很多初学者来说,中文字符编码不相同的问题,是一个很烦躁的问题!!因为很多时候,我们并不知道,到底是哪一层出现了问题?在这里稍微做个总结~也怕... -
java通过jdbc插入中文到mysql显示乱码(问号或者乱码)
2019-05-21 08:30:00对于很多初学者来说,中文字符编码不相同的问题,是一个很烦躁的问题!! 因为很多时候,我们并不知道,到底是哪一层出现了问题? 在这里稍微做个总结~也怕自己今后忘了!! 其实也就三层: 1、前端页面 2、... -
Mysql插入中文变为全问号???的问题 解决方法
2015-07-28 16:27:02当通过程序或者mysql客户端插入数据的时候出现中文变成??这种类似的乱码时,多半是由于数据库编码的问题 1.如果是Java程序,则在url连接的地方加上?useUnicode=true&characterEncoding=utf-8试试 2.如果通过客户端... -
mysql插入中文乱码,中文全部显示问号 ?
2020-08-01 20:44:14最近做Java GUI项目时,利用 insert SQL 语句向 MySQL数据库(版本:mysql 5.5)中插入了中文,无奈中文都被 ?? 替换了,也就是中文乱码了。 1、网上普遍的改法 百度了一圈,修改方法也就是在 mysql 配置文件增加... -
MySQL 中文插入数据乱码(问号????)
2016-05-12 15:07:01将带有中文的数据插入通过java程序插入到表中,中文出现了乱码. 一开始以为是客户端连接时的字符编码不对. 1. 便将hibernate的datasource的URL改为如下: (红色部分为修改后代码.) . 修改后,执行添加操作, ... -
java jdbc mysql 乱码_Java: JDBC连接MySQL数据库插入中文内容出现乱码
2021-01-19 02:21:15如上图, 向MySQL数据库中插入中文内容时, 插入的信息变成了问号。解决办法如下:1. 设置jsp页面的编码格式。我的项目中是这样的:添加图书信息图书名称: 图书价格: 图书数量: 图书作者: 2. 设置数据库的编码方式:我... -
linux服务器上使用java连接mysql插入中文无法显示问题
2019-03-24 13:44:34项目在阿里云的服务器上运行之后,连上了数据库但是,客户端发送过去的中文信息,服务端处理后插入到mysql数据库的时候出现的都是“????”都是中文的问号,然后我本地测试也是用的mysql数据库,没出现这样的问题... -
Java程序向MySql数据库中插入的数据变成了问号
2018-09-21 14:39:39其实,当我们看到这个问题的时候都会很快的想到... 后来在查看Mysql的资料时候发现: 1、MySQL的默认编码是Latin1,不支持中文,支持中文的数据库编码格式为gbk和utf8(注:在MySQL中要使用utf8,在java程序中使用ut... -
MySQL 中文插入数据乱码(问号????)ERROR 1366 (HY000)
2015-04-13 22:26:13将带有中文的数据插入通过java程序插入到表中,中文出现了乱码. 一开始以为是客户端连接时的字符编码不对. 1. 便将hibernate的datasource的URL改为如下: ?useUnicode=true&characterEncoding=gbk" />(红色部分... -
(转)MySQL 中文插入数据乱码(问号????)
2011-07-04 15:02:47将带有中文的数据插入通过java程序插入到表中,中文出现了乱码. 一开始以为是客户端连接时的字符编码不对. 1. 便将hibernate的datasource的URL改为如下: (红色部分为修改后代码.) . 修改后,执...