【linux学习笔记】windows与linux换行符转换(unix2dos dos2unix)字符编码转换(iconv)

    xiaoxiao2021-03-25  49

    unix2dos dos2unix

    dos使用的断行字符为^M$,称为CR与LF两个符号。而在linux下,则是仅有LF($)这个断行符号。

    linux执行指令的时候,是按照enter键来判断,而linux的enter是LF符号,而dos下enter为CRLF,多了一个^M出来。因此执行shell script时会出现错误。 可以通过unix2dos,dos2unix来进行相互转换。 语法:

    unix2dos [-kn] file [newfile]

    -k表示保留档案原来的mtime,也就是修改时间。(即本次修改不更改档案的修改时间) -n表示保留原来的档案,把转变后的档案输出到新档案newfile。

    例子

    unix2dos -k filename dos2unix -kn filename newfile

    dos换行符下的档案会比linux下的档案大,因为多^M字符。


    icnov

    如果需要进行语系编码间的转换,可以用到icnov这个命令。 语法:

    icnov –list icnov -f old -t new filename [-o newfile]

    -icnov –list列出支持的语系 -f 表示from,后边接原来编码 -t 表示to,后边接想转换的编码 -o 表示保留原来档案,建立新档案,档案名称为newfile。

    例子

    icnov -f gb2312 -t utf8 -o file.utf8

    没怎么用过这个命令,不过看鸟哥书上写的把utf8(繁体中文)转为简体中文的UTF8时,是先转到gb2312,再转到utf8(简体中文)。是这么写的:

    iconv -f utf8 -t big5 vi.utf8 | iconv -f big5 -t gb2312 | iconv -f gb2312 -t utf8 -o vi.gb.utf8

    转载请注明原文地址: https://ju.6miu.com/read-50017.html

    最新回复(0)