unix怎么设置文件的编码格式 - CSDN
  • 通常来说,Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以Linux下打开windows的文件会有...在Linux中查看文件编码可以通过以下几种方式: 1.在Vim中可以直接查看文件编码 ​ :set fileencoding

    通常来说,Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8,所以Linux下打开windows的文件会有乱码的情况。另外,有时要将文件进行编码转换,如将简体中文转换为繁体中文。


    vim中查询修改文件编码格式


    set fileencoding

    查看现在文本的编码


    :set fenc=编码

    转换当前文本的编码为指定的编码


    :set enc=编码
    以指定的编码显示文本,但不保存到文件中。

    这里的“编码”常见为gbk utf-8 big5 cp936


    :set ff

    查看当前文本的模式类型,一般为dos,unix


    :set ff=dos
    设置为dos模式

    也可以用一下方式转换为unix模式


    :%s/^M//g
    等同于:set ff=unix




    查看文件编码
    在Linux中查看文件编码可以通过以下几种方式:
    1.在Vim中可以直接查看文件编码


    :set fileencoding


    即可显示文件编码格式。
    如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,

    那么你可以在 ~/.vimrc 文件中添加以下内容:

    set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

    这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照 fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开


    2. enca (如果你的系统中没有安装这个命令,可以用sudo yum install -y enca 安装 )查看文件编码


    $ enca filename


    filename: Universal transformation format 8 bits; UTF-8
    CRLF line terminators
    需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:
    Unrecognized encoding

    文件编码转换
    1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
    :set fileencoding=utf-8

    2. enconv 转换文件编码,比如要将一个GBK编码的文件转换成UTF-8编码,操作如下


    enconv -L zh_CN -x UTF-8 filename

    3. iconv 转换,iconv的命令格式如下:


    iconv -f encoding -t encoding inputfile


    比如将一个UTF-8 编码的文件转换成GBK编码


    iconv -f UTF-8 -t GBK file1 -o file2

    查看文件编码file命令
    
    file ip.txt 
    
    ip.txt: UTF-8 Unicode text, with escape sequences
    
    一、利用iconv命令进行编码转换文件内容编码转换  
    
    iconv命令用于转换指定文件的编码,默认输出到标准输出设备,亦可指定输出文件。  
    
    用法: iconv [选项...] [文件...]  
    
    有如下选项可用:  输入/输出格式规范:  
    
    -f, --from-code=名称 原始文本编码  
    
    -t, --to-code=名称 输出编码  信息:  
    
    -l, --list 列举所有已知的字符集    输出控制:  
    
    -c 从输出中忽略无效的字符  
    
    -o, --output=FILE 输出文件  
    
    -s, --silent 关闭警告  --verbose 打印进度信息  
    
    -?, --help 给出该系统求助列表  
    
    --usage 给出简要的用法信息  
    
    -V, --version 打印程序版本号    
    
    例子:  
    
    iconv -f utf-8 -t gb2312 aaa.txt >bbb.txt  
    
    这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。
    
    二、文件名编码转换
    
    因为现在用linux,原来在windows里的文件都是用GBK编码的。所以copy到linux下是乱码,文件内容可以用iconv来转换可是好多中文的文件名还是乱码,找到个可以转换文件名编码的命令,就是convmv。
    
    convmv命令详细参数  例如
    
    convmv -f GBK -t UTF-8 *.mp3
    
    不过这个命令不会直正的转换,你可以看到转换前后的对比。
    
    如果要直正的转换要加上参数 --notest
    
    convmv -f GBK -t UTF-8 --notest *.mp3
    
    -f 参数是指出转换前的编码,
    
    -t 是转换后的编码。这个千万不要弄错了。不然可能还是乱码哦。还有一个参数很有用。就是 
    
    -r 这个表示递归转换当前目录下的所有子目录。
    
    * 需要安装 convmv-1.10-1.el5.noarch.rpm  
    
    三、  更好的傻瓜型命令行工具enca,它不但能智能的识别文件的编码,而且还支持成批转换。    1.安装    
    $sudo apt-get install enca   
     
    2.查看当前文件编码   
     
    enca -L zh_CN ip.txt     
    
    Simplified Chinese National Standard; GB2312     Surrounded by/intermixed with non-text data    
    3.转换    命令格式如下    
    $enca -L 当前语言 -x 目标编码 文件名   
     
    例如要把当前目录下的所有文件都转成utf-8    
    enca -L zh_CN -x utf-8 *  
       
    检查文件的编码 enca -L zh_CN file    
     
     将文件编码转换为"UTF-8"编码  
     
     enca -L zh_CN -x UTF-8 file
     
     如果不想覆盖原文件可以这样         
     
     enca -L zh_CN -x UTF-8 < file1 > file2  
     
     
     用法:
      Convmv -f 源编码 -t 新编码 [option] filename
      安装enca
      下载相关rpm包。地址(http://rpmfind.net/linux/RPM/dag/redhat/el5/i386/ )
      我下载的是:enca-1.10-1.el5.rf.i386.rpm和enca-devel-1.10-1.el5.rf.i386.rpm
      安装:
      # rpm -ivh enca-1.10-1.el5.rf.i386.rpm
      # rpm -ivh  enca-devel-1.10-1.el5.rf.i386.rpm
    

    展开全文
  • 执行shell文件时候,报错 /bin/bash^M: bad interpreter: No such file or directory ...直接输入: :set ff=unix 表示设置文件格式unix格式 然后回车 然后就保存退出,Esc :w q !

    执行shell文件时候,报错

    /bin/bash^M: bad interpreter: No such file or directory

      一般是编码格式问题,可能是dos格式,

    1. vi命令打开要替换尖括号的文件

    2. 直接输入:   :set ff=unix 表示设置文件格式是unix格式

    3. 然后回车

    4. 然后就保存退出,Esc :w q ! (和保存普通文件一样)


    展开全文
  • unix下查看文件格式

    2011-02-17 17:43:00
    os格式文件如果不是采用ascii格式传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件格式,比如 "dos.txt" [dos] 120L, 2532C 字样,表示是一个[dos]格式文件,...

    os格式文件如果不是采用ascii格式传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 2532C 字样,表示是一个[dos]格式文件,如果是MAC系统的,会显示[MAC],因为文件格式的原因有时会导致我们的unix程序,或者shell程序出现错误,那么需要把这些dos文件格式转换成unix格式,方法是 

        vi  dos.txt       
        :set fileformat=unix 
        :w                 

      这样文件就转换成unix格式文件了, 一般在windows机器上编写好了文件传到unix下就可能会出现这样的情况. 

      用命令:set ff 
      可以看到dos或unix的字样. 
      用:set ff=unix把它强制为unix格式   

    展开全文
  • 项目工程文件编码格式有utf-8,也有gb2312,在通过Source Insight 4.0打开文件只能设置一种默认编码格式UTF-8/Windows ANSI/GB2312,不能自动识别文件本身的编码格式,这就导致总有一部分文件打开后,注释是乱码,...

    背景

    项目工程文件编码格式有utf-8,也有gb2312,在通过Source Insight 4.0打开文件只能设置一种默认编码格式UTF-8/Windows ANSI/GB2312,不能自动识别文件本身的编码格式,这就导致总有一部分文件打开后,注释是乱码,影响阅读和使用。

    为解决该问题,寻找批量文件编码格式转换工具(包括子目录)。

    1.安装enca

    enca是Linux下的文件编码转换工具。

    enca的安装请参考:
    https://blog.csdn.net/mayue_web/article/details/89384982

    查看是否安装enca:

    enca --version
    

    已安装,会显示enca版本,如下图:
    在这里插入图片描述
    未安装:
    在这里插入图片描述

    2.通过shell脚本批量修改编码格式

    安装enca后,通过 enca -x utf-8 * 可将本目录下所有文件编码格式修改为utf-8格式,但是它不能遍历子文件夹,故要跟find命令配合。
    在这里插入图片描述
    上面这段代码可以搜索当前目录下及所有子目录的cpp和h格式的文件。

    utf-8编码格式的转换脚本如下:
    在这里插入图片描述

    cli="find . -type f \( "
    for arg in ${@:1:$#-1}
    do
    	cli="$cli -iname \*.$arg -o "
    done
    cli="$cli -iname \*.${@: -1} \)"
    #echo $cli
    PRE_IFS=$IFS
    IFS=$'\n'
    for i in `eval $cli`
    do
    	enca -x utf-8 $i
    done
    IFS=$PRE_IFS
    echo "ok!"
    

    通过chmod赋予toUTF8.sh运行权限,然后把它拷贝进~/bin 文件夹中,这样这条命令就在环境变量里了,可以随处使用。

    chmod 777 toUTF8.sh
    

    若需修改编码格式为其他格式,只需替换utf-8即可,可选项有GB2312,

    3.脚本使用示范

    使用示范:进入待处理文件夹的根目录,输入参数 cpp h c,即把根目录内所有cpp、h、c文件改成了utf-8字符集。脚本写成了可以接受指定文本格式的形式,这样比较灵活和通用。
    在这里插入图片描述
    好了文件统一转换为UTF-8编码格式了。

    此时通过Source Insight 4.0以utf-8为默认编码格式打开,则注释不在乱码;

    以后有遇到这种事,就能直接用它来处理就完事了。

    4.enca查看文件编码格式

    enca `ls`
    

    在这里插入图片描述

    参考资料:
    https://blog.csdn.net/rush_mj/article/details/79705355
    https://blog.csdn.net/gatieme/article/details/55045883

    展开全文
  • vim设置编码格式

    2018-08-09 17:21:28
    先利用vim打开指定文件  :set ff 查看当前文本的模式类型,一般为dos,unix :set ff=dos 设置为dos模式, 也可以用 sed -i 's/$/\r/'  :set ff=unix 设置unix模式,也可以用一下方式转换为unix模式:sed -i 's/....
  • 我经常用 notepad++, 在用这个工具编写 sh文件时,注意最后要将文件设置unix格式并且 u8编码设置如下: 这是我使用的版本:    下 选择: 以UTF-8无BOM格式编码(在5.4.3版本下,同时在格式下点击 ...
  • 由于Windows下的换行和Unix下的换行符不同,在Windows下编辑的程序在linux下查看的话会在每行的最后出现“^M”符号,...如果想要使用Notepad将Windows风格的文件转成Unix风格的可以:编辑 -> 档案格式转换 -> 转为XXX
  • vim 中查询和转换文件编码格式 set fileencoding 查看现在文本的编码 :set fenc=编码 转换当前文本的编码为指定的编码 :set enc=编码 以指定的编码显示文本,但不保存到文件中。 这里的“编码”常见为gbk utf-8 big5...
  • 我们经常会在项目的配置文件,代码,运行时的控制台日志等等地方发现许多乱码,这很主要的原因是开发者在开发项目之前没有做好开发工具的编码格式设置,这在很大程度上提现了开发者的不专业程度,所以建议大家开发项目...
  • 设置换行符为Unix编码格式 设置编码统一为UTF-8 自动生成serialVersionUID。勾选"Serializable class without serialVersionUID",光标放在类名上,再次按Alt+Enter键,这个时候可以看到"Add ...
  • 现象:有时候从window写好的脚本文件,上传到Linux后执行会报错,如下 脚本很简单,如下 #!/usr/bin/env bash ZK_SERVER_HEAP="${ZK_SERVER_HEAP:-1000}" echo $ZK_SERVER_HEAP 执行后报错信息如下 root@server-4:...
  • 新文件换行格式 Settings -> Editor -> Code Style -> Line separator (for new files) 选择Unix and OS X (\n) 文件编码格式 Settings -> Editor -> File Endcodings 改成UTF-8
  • 换行符改为unix/linux格式: window换行符是CN AF,而Unix/Linux下是AF。可以在编辑-&amp;gt;文档编辑转换 选择对应的windows或者unix/linux格式。 将tab设置为4个空格: 设置-&amp;gt;首选项-&amp;gt...
  • 在windows下开发,写好的shell脚本,放到linux上执行,往往会因为编码格式的问题存在兼容问题: ...这是由于文件编码格式windows,需要将文件编码格式改成unix: 使用vim打开文件 设置:set ff=...
  • 设置换行符为Unix编码格式 Tab改为4个空格 https://jingyan.baidu.com/article/148a1921cbaaf04d71c3b1ee.html
  • 如果你需要在Linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。...即可显示文件编码格式。 如果你只是想查看其它编码
  • (fileformat)可以查看文件格式,使用set ff=dos(unix)可以设置文件格式 2.使用sed处理(来至http://www.cnblogs.com/yangyh/archive/2011/08/12/linux.html) Sed命令笔记 Tag:linux sed 正则 替换 DOS/...
  • 在Linux中操作windows下的文件时,会遇到乱码的情形。...这是由于Windows中默认的文件格式是GBK(gb2312),而Linux一般都是UTF-8。 下面说一下在Linux中如何查看文件编码及如何进行对文件进行编码转换。 1
  •  即可显示文件编码格式。  如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在  ~/.vimrc 文件中添加以下内容:  set encoding=utf-8 fileencodings=ucs
1 2 3 4 5 ... 20
收藏数 105,913
精华内容 42,365
热门标签
关键字:

unix怎么设置文件的编码格式