【Mysql】iconv 转换字符集

学习mysql字符集转换的过程中,看到有些网络资料有使用iconv 命令转换字符集的,所以这里学习一下,iconv 的使用!(ps 网络中关于使用iconv 转换mysqldump 出的文件不靠谱,随后的文章会介绍)
iconv的用法:
用法: iconv [选项...] [文件...]
Convert encoding of given files from one encoding to another.
输入/输出格式规范:
  -f, --from-code=NAME       原始文本编码
  -t, --to-code=NAME         输出编码
信息:
  -l, --list                 列举所有已知的字符集
输出控制:
  -c                         从输出中忽略无效的字符
  -o, --output=FILE          输出文件
  -s, --silent               suppress warnings
      --verbose              打印进度信息
  -?, --help                 给出该系统求助列表
      --usage                给出简要的用法信息
  -V, --version              打印程序版本号
  
mysql> use latin
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> select * from ytab;
+--------+----------------+
| name   | val            |
+--------+----------------+
| yangql | 杨奇龙      | 
| cat    | 猫            | 
| lily   | lily           | 
| 32     | shengxiaonan32 | 
+--------+----------------+
4 rows in set (0.00 sec)
导出数据库latin中的ytab表:
[root@rac3 ~]# mysqldump -h127.0.0.1   -uroot  latin  ytab > create_la_ytab1.sql                              
[root@rac3 ~]# cat create_la_ytab1.sql 
-- MySQL dump 10.11
-- Host: 127.0.0.1    Database: latin
-- ------------------------------------------------------
-- Server version       5.0.45
-- Table structure for table `ytab`
--
DROP TABLE IF EXISTS `ytab`;
CREATE TABLE `ytab` (
  `name` varchar(15) default NULL,
  `val` varchar(15) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- Dumping data for table `ytab`
LOCK TABLES `ytab` WRITE;
/*!40000 ALTER TABLE `ytab` DISABLE KEYS */;
INSERT INTO `ytab` VALUES ('yangql','??¨?¥?é??'),('cat','???'),('lily','lily'),('32','shengxiaonan32'); --出现乱码
/*!40000 ALTER TABLE `ytab` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
-- Dump completed on 2011-10-27 13:40:25

[root@rac3 ~]# iconv -t latin1 -f utf8 -c create_la_ytab1.sql > ytab-latin.sql            
[root@rac3 ~]# cat ytab-latin.sql
-- MySQL dump 10.11
-- Host: 127.0.0.1    Database: latin
-- ------------------------------------------------------
-- Server version       5.0.45
-- Table structure for table `ytab`
DROP TABLE IF EXISTS `ytab`;
CREATE TABLE `ytab` (
  `name` varchar(15) default NULL,
  `val` varchar(15) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- Dumping data for table `ytab`
LOCK TABLES `ytab` WRITE;
/*!40000 ALTER TABLE `ytab` DISABLE KEYS */;
INSERT INTO `ytab` VALUES ('yangql','杨'),('cat',',('lily','lily'),('32','shengxiaonan32');--引起部分数据丢失。。
/*!40000 ALTER TABLE `ytab` ENABLE KEYS */;
UNLOCK TABLES;
-- Dump completed on 2011-10-27 13:40:25
[root@rac3 ~]# 

note:生产环境慎用!

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22664653/viewspace-709812/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22664653/viewspace-709812/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值