Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104633762
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-04-05 13:14:16

作者: Buyto  出自:
做为一名中国的程序员最郁闷的可能就是要面对繁琐的中文编码问题了。

这个问题困扰我好几天,终于在同学的帮助下给解决了。

1.Linux下的系统编码需要设置一下,修改/etc/sysconfig/i18n的内容为:

LANG="zh_CN.GB18030"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN.GBK:zh_CN"
SUPPORTED="zh_HK.UTF-8:zh_HK:zh:zh_CN.GB18030:zh_CN:zh:zh_TW.Big5:zh_TW:zh"
SYSFONT="lat0-sun16"
SYSFONTACM="8859-15"

然后需要将语言设置写入系统环境变量中,操作如下:

export NLS_LANG="SIMPLIFIED CHINESE_CHINA.GBK"

2.这一步是将mysql的默认字符集换成utf8,后面其实把数据库的字符集又改回latin1,所以这步可能并没有作用。

修改/etc/my.cnf,添加 default-character-set= utf8

然后重启mysql,在shell下输入 /etc/rc.d/init.d/mysql start

3.针对需要输入中文字符的数据库配置

ALTER DATABASE `ciscrawler` DEFAULT CHARACTER SET latin1;
ALTER TABLE `http_4` DEFAULT CHARACTER SET latin1;
ALTER TABLE `http_4` CHANGE `PURL_TITLE` `PURL_TITLE` VARCHAR( 50 ) CHARACTER SET latin1;

程序从数据库写入和读出时候都使用iso-8859-1编码

String title = new String(rs.getString("PURL_TITLE").getBytes("iso-8859-1"));
阅读(427) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~