linux文件编码转换

iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。
用法: iconv [选项...] [文件...]
选项如下:
      输入/输出格式规范:
      -f, --from-code=名称 原始文本编码
      -t, --to-code=名称 输出编码

      信息:
      -l, --list 列举所有已知的字符集

      输出控制:
      -c 从输出中忽略无效的字符
      -o, --output=FILE 输出文件
      -s, --silent 关闭警告
      --verbose 打印进度信息
      -?, --help 给出该系统求助列表
      --usage 给出简要的用法信息
      -V, --version 打印程序版本号

示例:
iconv -t utf-8 -f gb2312 a.txt >b.txt
这个命令读取a.txt文件,从gb2312编码转换为utf-8编码,其输出定向到b.txt文件,这个文件的中文就可以用vi在linux中正常显示。

    windows下的文本文件的换行符都是<LF><CR>(0x0d 0x0a),在linux下换行符是<LF>(0x0a)。用以下命令可以看出两者的差别(od命令用来显示文件的存储二进制值):
od -t x1 code_on_windows.c > code_on_windows
od -t x1 code_on_linux.c > code_on_linux
打开code_on_windows和code_on_linux对比各自的行尾字符值就知道了。
正因为这个不同,一些代码文件转到linux下会出现未知行尾字符的错误(行尾的^M)。其实只要我们把这些多余的<CR>去掉,编译就不会报错。可以自己写个小程序读这个文件把值等于0x0d的字符去掉。其实在linux下有个命令叫dos2unix就是干这活。运行如下命令:
dos2unix code_on_windows.c
就可以把code_on_windows.c转成linux下的文件。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值