mysql用java程序插入中文变问号
来源:互联网 发布:易语言ui界面源码 编辑:程序博客网 时间:2024/06/01 12:53
问题描述:
我用程序读取 数据库中的某个表A中的记录的时候,得到的中文是正确的。当我把得到的记录进行处理之后,新建了表B,然后往表B中插入记录时一直无法插入,打印sql语句发现其中的中文部分全部都是问号。按照网友分享的方法,执行以下命令,得到的结果显示并不能解决问题。
先检查各个字符集:
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再检查 表B 的每个列的字符集
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_general_ci和utf8_unicode_ci 似乎没有太大影响。(原本应该都是utf8_general_ci,由于在插入语句添加了修改语句,正常情况下统一的)
发现以上步骤都显示出数据库从 数据库-->表---->列 都是统一的编码格式,都是使用了 万无一失的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 setmysql> 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解决问题。
嗯。我的问题到此也算是完美解决了。
- mysql用java程序插入中文变问号
- java程序向mysql插入中文变问号
- java程序向mysql插入中文变问号
- java程序向mysql插入中文变问号的总结
- java程序向mysql插入中文变问号
- hibernate 连接Mysql数据库插入中文数据变问号 解决方法
- mysql数据库中文变问号'???'
- mysql 命令行插入中文没问题 java代码插入成问号
- mysql 中文 变问号 编码问题
- 解决MySQL存入中文变问号
- 在mysql工具插入中文正常,在java中插入中文全部显示问号???
- java程序向mysql添加中文出现问号乱码
- 解决PHP Mysql 插入中文显示问号
- MySQL 中文插入数据乱码(问号????)
- mysql插入数据中文显示问号/乱码
- Mysql插入数据中文问号或乱码
- Android笔记--解决使用php文件插入数据到mysql数据库的表中中文变问号的问题
- jsp jdbc插入mysql的汉字乱码,全变问号
- MediaPlayer(4024): error (1, -2147483648)解决办法
- 【C++算法设计】八数码问题
- IOS设计模式之四(备忘录模式,命令模式)
- setsockopt()函数用法
- android 4.0对power按键的处理
- mysql用java程序插入中文变问号
- 无参传递及类外使用作用域运算符
- NOR flash和NAND flash区别
- unity NGUIlabel控件获取系统时间
- 使用Hadoop har归档历史文件(小文件)
- 富兰克林之十三美德
- Visual Studio 2012 Express 较好支持 C++11 新特性
- 2 kinds of scenarios in terms of HA failover behavior on Nexenta
- java中循环语句的理解