vb.net写入mysql时中文乱码变成"?"

WJ同学 2013-03-20 11:25:49
使用vb.net连接mysql数据库,插入的数据在mysql表里是乱码,用vb.net读取出来也是乱码
mysql数据库:
mysql> show variables like 'character_set_%';
+--------------------------+----------------------------+
| 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 | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set

表:
mysql> show create table mailbox;
| Table | Create Table | mailbox | CREATE TABLE `mailbox` (
`username` varchar(255) NOT NULL default '',
`question` text NOT NULL,
`answer` text NOT NULL,
`autoreply` smallint(1) default NULL,
`autoreplycontent` text,
PRIMARY KEY (`username`),
KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COMMENT='Mailboxes' |


程序部分:

MySqlConnection="server=192.168.10.10;user id=root;password=123456;database=;charset=utf8"


现在我使用.net向mysql写入数据,然后读取,但是写入数据库的中文字符乱码,读取时也乱码,都为"?",英文和数字没事
原因是什么呢?
...全文
406 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
WJ同学 2013-03-20
  • 打赏
  • 举报
回复
还有一个可以临时更改,甚至是更改到列的字符集 参考: http://os.chinaunix.net/a2007/1212/971/000000971125.shtml
WJ同学 2013-03-20
  • 打赏
  • 举报
回复
问题解决了,但是解决的有点让人不爽,因为我还是改了mysql数据表属性。。。 办法: mysql> ALTER TABLE mailbox CONVERT TO CHARACTER SET utf8; 这样这个表的字符集就成了utf8的了。 (这个转换字符集时要注意里面的数据哦, 参考 http://blog.csdn.net/lyjtynet/article/details/6261066) 程序中连接数据库 MySqlConnection="server=192.168.10.10;user id=root;password=123456;database=mail;charset=utf8" 就ok了 只是还没搞明白vb.net怎么将默认的中文字符集转化为mysql可以识别的latin1字符集。。。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧