mysql运行了向导,修改了数据库属性里,还是不能输入中文,求解 感谢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/ACMAIN_CHM/archive/2009/05/12/4174186.aspxMySQL 中文显示乱码 +--------------------------+---------------------------------------------------------+| 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 | latin1 || character_set_system | utf8 || character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |+--------------------------+---------------------------------------------------------+我都改成UTF8了,现在直接在数据库里可以插入中文,用控制台插入也是中文了,但是在程序里就不行了,MyEclipse->Preferences->General->Content Types里的项我也都改成uft-8了,my.ini也改成utf-8了,为什么还是不行? character_set_server 这个不知道怎么改了? show create table 显示你的表结构。在你的 程序中执行一下 set names 'utf8'; mysql> show create table adpicinfo;+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| Table | Create Table |+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+| adpicinfo | CREATE TABLE `adpicinfo` ( `AdPicID` int(11) NOT NULL AUTO_INCREMENT, `AdPicName` varchar(255) DEFAULT NULL, `AdPicPicpath` varchar(255) DEFAULT NULL, `AdPicClickCount` int(11) DEFAULT NULL, PRIMARY KEY (`AdPicID`)) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 |+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+1 row in set在你的 程序中执行一下 set names 'utf8';是 request.setCharacterEncoding("utf-8"); 这样吗? request.setCharacterEncoding("utf-8"); 试了,但是貌似没什么用.... 不是,象执行 update table1 set xxx.. 一样,执行一下 set name 'utf8' 你的 java 中是如何执行一条SQL语句的? public void insertAd(PicInfo pi) { conn = DataProvider.getConnection(); PreparedStatement pstsm = null; try { pstsm = conn.prepareStatement("insert into " + "adpicinfo(AdPicID,AdPicName,adPicPicpath,AdPicClickCount) values (null,?,?,0); "); pstsm.setString(1, pi.getAdPicName()); pstsm.setString(2, pi.getAdPicPicpath()); pstsm.executeUpdate(); }catch(SQLException ex) { ex.printStackTrace(); } finally { try { pstsm.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } } 那同样的方法执行一下 set name 'utf8' pstsm = conn.prepareStatement("set names 'utf8'" );你不懂java? public void insertAd(PicInfo pi) { conn = DataProvider.getConnection(); PreparedStatement pstsm = null; PreparedStatement pstsm2 = null; try { pstsm2 = conn.prepareStatement("set names 'utf8'" ); pstsm = conn.prepareStatement("insert into " + "adpicinfo(AdPicID,AdPicName,adPicPicpath,AdPicClickCount) values (null,?,?,0); "); pstsm.setString(1, pi.getAdPicName()); pstsm.setString(2, pi.getAdPicPicpath()); pstsm2.executeUpdate(); pstsm.executeUpdate(); }catch(SQLException ex) { ex.printStackTrace(); } finally { try { pstsm.close(); conn.close(); } catch (SQLException e) { e.printStackTrace(); } } }这样?java.sql.SQLException: Incorrect string value: '\x9D.jpg' for column 'AdPicPicpath' at row 1出了个异常,奇怪的是getAdPicName在前面的没报异常,getAdPicPicpath报异常了 哎,很郁闷,上次还好好的,mysql的向导运行了一下选编码的时候选了个utf8回来看看my.ini还是latin,像是没运行向导一样,不知道怎么搞的 关于两个表联合的问题,大家帮帮我 mysql排序的问题请教 数据库间的同表名合并,用insert into select from实现 数据库建表问题 TIMEDIFF问题。貌似时间相差太久会溢出? 新手求值,如何实现以下简单的查找功能? 如何将mysql表的内容追加导入另一张表 请问mysql支持的最长的sql语句能有多少字符? LIMIT 查询2000条记录得表 mysql连接中出现大量unauthenticated user 关于mysql触发器功能的一个问题 mysql定时备份没有效果
MySQL 中文显示乱码
| 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 | latin1 |
| character_set_system | utf8 |
| character_sets_dir | C:\Program Files\MySQL\MySQL Server 5.1\share\charsets\ |
+--------------------------+---------------------------------------------------------+我都改成UTF8了,现在直接在数据库里可以插入中文,用控制台插入也是中文了,但是在程序里就不行了,MyEclipse->Preferences->General->Content Types里的项我也都改成uft-8了,my.ini也改成utf-8了,为什么还是不行?
mysql> show create table adpicinfo;
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table | Create Table |
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| adpicinfo | CREATE TABLE `adpicinfo` (
`AdPicID` int(11) NOT NULL AUTO_INCREMENT,
`AdPicName` varchar(255) DEFAULT NULL,
`AdPicPicpath` varchar(255) DEFAULT NULL,
`AdPicClickCount` int(11) DEFAULT NULL,
PRIMARY KEY (`AdPicID`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8 |
+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set
在你的 程序中执行一下 set names 'utf8';
是 request.setCharacterEncoding("utf-8"); 这样吗?
试了,但是貌似没什么用....
conn = DataProvider.getConnection();
PreparedStatement pstsm = null;
try {
pstsm = conn.prepareStatement("insert into " +
"adpicinfo(AdPicID,AdPicName,adPicPicpath,AdPicClickCount) values (null,?,?,0); ");
pstsm.setString(1, pi.getAdPicName());
pstsm.setString(2, pi.getAdPicPicpath());
pstsm.executeUpdate();
}catch(SQLException ex) {
ex.printStackTrace();
} finally {
try {
pstsm.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
conn = DataProvider.getConnection();
PreparedStatement pstsm = null;
PreparedStatement pstsm2 = null;
try {
pstsm2 = conn.prepareStatement("set names 'utf8'" );
pstsm = conn.prepareStatement("insert into " +
"adpicinfo(AdPicID,AdPicName,adPicPicpath,AdPicClickCount) values (null,?,?,0); ");
pstsm.setString(1, pi.getAdPicName());
pstsm.setString(2, pi.getAdPicPicpath());
pstsm2.executeUpdate();
pstsm.executeUpdate();
}catch(SQLException ex) {
ex.printStackTrace();
} finally {
try {
pstsm.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}这样?
java.sql.SQLException: Incorrect string value: '\x9D.jpg' for column 'AdPicPicpath' at row 1
出了个异常,奇怪的是getAdPicName在前面的没报异常,getAdPicPicpath报异常了