一、项目问题
1.windows下java工程编码方式为UTF-8。
2.我用的linux虚拟主机系统的默认编码好像不是utf-8系统,修改/etc/sysconfig/i18n 为:
LANG="en_US.UTF8"
LANGUAGE="zh_CN.GB18030:zh_CN.GB2312:zh_CN"
SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
SYSFONT="lat0-sun16"
3.代码编译时中文不识别,我用的ant编译,在ant中配置编译方式
<javac srcdir="${src.home}" destdir="${class.home}" debug="true"<strong> encoding="UTF-8"</strong> debuglevel="source,lines,vars">
<classpath refid="project.class.path"/>
</javac>
二、修改mysql的编码方式
这是最后的配置结果:
mysql> show variables like 'char%';
+--------------------------+----------------------------+
| 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/share/mysql/charsets/ |
+--------------------------+----------------------------+
修改过程:
1.将/usr/share/mysql目录下的my-large.cnf,或者某个配置文件拷贝到/etc/my.cnf
2.修改my.cnf文件
[client]
default-character-set=utf8
[mysqld]
log_error = /var/log/mysql/error.log
init_connect='SET NAMES utf8'
character_set_server = utf8
collation-server = utf8_unicode_ci
3.重启mysql
service mysql restart
4.打开mysql命令行终端
SETcharacter_set_database = utf8 ;
5.删除原来的问题数据库重建,在输入中文。就ok了。
此外,关于windows GBK编码的文件,如何快速转换为UTF8,mac下如下操作:
单个文件转换代码:
iconv -f GBK -t UTF-8 a.php > a.php.utf8
批量转换文本编码代码:
find *.php -exec sh -c "iconv -f GBK -t UTF8 {} > {}.utf8" \;