网上有人用vim转换,成功率也很高,iconv有时候不能转换
以指定的编码打开某文件
如打开windows中以ANSI保存的文件
vim file.txt -c "e ++enc=GB18030"
文件编码转换
在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
保存就可以了
我是从旧的mysql导出来一个文本文件
设置mysql一个安全目录,因为这个之前是一个漏洞,可以用phpmysqladmin提权,后来mysql封了这个漏洞
secure_file_priv=/var/lib/mysql
这样可以导入和导出了
下面mysql数据导出方式和导入
http://blog.youkuaiyun.com/guoguo1980/article/details/2070701
为了解决第一种方法中总结时说到的问题,在网上苦苦查找了一天资料才东拼西凑的搞出一个比较稳妥的解决方法
步骤一 将待导出的数据表的表结构导出(可以用Phpmyadmin、mysqldump等,很简单就不说了),然后将导出的create table语句的CHARSET=latin1改为CHARSET=utf8,在目标库newdbname中执行该create table语句把表结构建好,接下来开始导出-导入数据
步骤二 命令行:进入mysql命令行下,mysql -hlocalhost -uroot -p*** dbname
步骤三 执行SQL select * from tbname into outfile '/usr/local/tbname.sql';
步骤四 将tbname.sql转码为utf-8格式,建议使用UltraEditor,可以直接使用该编辑器的'转换->ASCII到UTF-8(Unicode编辑)',或者将文件另存为UTF-8(无BOM)格式
步骤五 在mysql命令行下执行语句 set character_set_database=utf8; 注:设置mysql的环境变量,这样mysql在下一步读取sql文件时将以utf8的形式去解释该文件内容
步骤六 在mysql命令行下执行语句 load data infile 'tbname.sql' into table newdbname.tbname;
注意:千万不要忘了第四步
采用第二种方法,所有数据均正常导入,且格式转换成功没有乱码