linux bom(linux软件仓库)

大家好,关于linux bom很多朋友都还不太明白,今天小编就来为大家分享关于linux软件仓库的知识,希望对各位有所帮助!

linux怎么设置编码格式linux编码格式设置

linux怎么看文本的编码格式?

linux下经常遇到的编码问题如果你需要在linux中操作windows下的文件,那么你可能会经常遇到文件编码转换的问题。windows中默认的文件格式是gbk(gb2312),而linux一般都是utf-8。

查看编码的方法

方法一:filefilename

方法二:在vim中可以直接查看文件编码

:setfileencoding

如果你只是想查看其它编码格式的文件或者想解决用vim查看文件乱码的问题,那么你可以在

~/.vimrc文件中添加以下内容:

setencoding=utf-8fileencodings=ucs-bom,utf-8,cp936

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

文件编码转换

多平台方法:

iconv提供标准的程序和api来进行编码转换;

convert_encoding.py基于python的文本文件转换工具;

decodeh.py提供算法和模块来谈测字符的编码;

linux下文件编码转换:

方法一:

在vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式

:setfileencoding=utf-8

或者

11)设置文件集合,即要对哪些文件进行操作,可以使用通配符,比如我通常是对c/c++源程序进行编码转换

:args*.h*.cpp

2)给出要在每个文件上执行的命令,这里是转换编码:

:argdosetfenc=utf-8|update

方法二:

iconv转换

5.案例:

假如说我们将windows下的一个utf-8的文件传到linux环境下,linux环境下的系统编码是gb18030,我们cat的时候就会出现乱码,这个时候就应该想到转码了,下面我们来进行试验:

我们将windows下一个名为utf-8.sh的文件传到linux系统中,其中utf-8.sh的内容如下:

我是中文编码utf-8模式~

而linux系统的系统语言设置为:

#cat/etc/sysconfig/i18n

lang=zh_cn.gb18030

sysfont="latarcyrheb-sun16"

这个时候查看一下文件的内容及编码:

#fileutf-8.sh

utf-8.sh:utf-8unicodetext,withnolineterminators

#catutf-8.sh

锘挎__?腑___镰_tf-8妯″纺~#

#

这个时候我们就需要转换编码了,记得使用iconv

#iconv-futf-8-tgb18030utf-8.sh-ogb18030.sh

#catgb18030.sh

??我是中文编码utf-8模式~#

#filegb18030.sh

gb18030.sh:non-isoextended-asciitext,withnolineterminators

#

convmv就是更改文件名编码方式的一个工具。

比如

sudoconvmv-fgbk-tutf-8-r_notest/home

就是将/home目录下原来文件名是gbk编码方式的全部改为utf-8格式的。这里-f后面为原来的编码方式,-t后面是要更改为的编码方式,-r表示这个目录下面的所有文件,_notest表示马上执行,而不是仅仅测试而已。另外这命令好像要root才能执行,因此要加上sudo。

linux下怎么改变文件的编码格式?

1、用VIM查看文件编码

在Vim中可以直接查看文件编码

:setfileencoding

即可显示文件编码格式。

2、改写~/.vimrc文件

如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在

~/.vimrc文件中添加以下内容:

setencoding=utf-8fileencodings=ucs-bom,utf-8,cp936

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

3、用ICONV文件编码转换

我们利用iconv工具对文件的编码进行转换。

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

iconv-fencoding-tencodinginputfile

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

iconv-fGBK-tUTF-8file1-ofile2

其中的参数的意义表示

-fFrom某个编码

-tTo某个编码

-o输出到文件

4、通过记事本另存为来改变文件编码;

既用Windows下的记事本打开,选择另存为,改变编码即可。

linux下怎么查看文件的编码方式?

一,查看文件编码:在Linux中查看文件编码可以通过以下几种方式:

1.在Vim中可以直接查看文件编码:setfileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc文件中添加以下内容:setencoding=utf-8fileencodings=ucs-bom,utf-8,cp936这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

2.enca(如果你的系统中没有安装这个命令,可以用sudoyuminstall-yenca安装)查看文件编码$encafilenamefilename:Universaltransformationformat8bits;UTF-8CRLFlineterminators需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:Unrecognizedencoding

linux系统文件格式后缀详解?

bz2------bzip2的压缩文件

.gz------gzip的压缩文件

.tar------tar打包文件(是包文件不是压缩文件)

.tbz------tar打包并用bzip压缩文件

.tgz-----tar打包并用gzip压缩的文件

.au-----audio文件

.gif-----gif图象文件

.html/.htm-----HTML文件

.jpg-----JPEG图象文件

.pdf------电子文档(PDF格式的)

.png-----PNG图象文件

.ps------postscinpt文件(打印格式文件)

.txt------纯文本文件

.wav-----audio文件

.xpm-----图象文件

.conf-------配置文件

.lock-------LOCK文件(用来判断一个文件或设备是否被使用)

.rpm------REDHATPackage.Manager文件(套件包或软件包)

.c-------C源程序代码文件

.cpp------C++源程序代码文件

.h-------C或C++程序的头文件

.o------程序目标文件

.pl------perl脚本文件

.so-----类库文件

.sh-----shell脚本与windows下的bat文件相似

.bin-----binary二进制可执行文件

linux下怎么查看文件编码

在Linux中查看文件编码可以通过以下几种方式:1.在Vim中可以直接查看文件编码:setfileencoding,即可显示文件编码格式。2.enca(如果你的系统中没有安装这个命令,可以用sudoyuminstall-yenca安装)查看文件编码

下面介绍一下,在Linux中如何查看文件的编码及如何进行对文件进行编码转换。

一,查看文件编码:在Linux中查看文件编码可以通过以下几种方式:

1.在Vim中可以直接查看文件编码:setfileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在~/.vimrc文件中添加以下内容:setencoding=utf-8fileencodings=ucs-bom,utf-8,cp936这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

2.enca(如果你的系统中没有安装这个命令,可以用sudoyuminstall-yenca安装)查看文件编码#36;encafilenamefilename:Universaltransformationformat8bits;UTF-8CRLFlineterminators需要说明一点的是,enca对某些GBK编码的文件识别的不是很好,识别时会出现:Unrecognizedencoding

二,文件编码转换

1.在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式:setfileencoding=utf-82.iconv转换,iconv的命令格式如下:输入/输出格式规范:-f,--from-code=名称原始文本编码-t,--to-code=名称输出编码信息:www.Svn8.Com-l,--list列举所有已知的字符集输出控制:-c从输出中忽略无效的字符-o,--output=FILE输出文件Svn8.Com-s,--silent关闭警告--verbose打印进度信息-?,--help给出该系统求助列表--usage给出简要的用法信息-V,--version打印程序版本号例子:iconv-futf-8-tgb2312aaa.txtbbb.txt这个命令读取aaa.txt文件,从utf-8编码转换为gb2312编码,其输出定向到bbb.txt文件。iconv-fencoding-tencodinginputfile比如将一个UTF-8编码的文件转换成GBK编码iconv-fGBK-tUTF-8file1-ofile2

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

linux系统下批量转换UTF8到GB2312并处理UTF8的BOM标记

背景

本人在使用oracle的sqlplus批量导入UTF8编码的sql脚本时,由于不了解如何设置让sqlplus识别UTF8格式,导致出现乱码、错行等错误,而使工作无法继续,在google无果的情况下只好想办法转换编码。

由于文件较多,手动转换太麻烦,于是想到用脚本批量转换,幸好网上相关脚本比较多,实现起来唯一的麻烦是UTF8的BOM标记。

内容:

复制代码

  

代码如下:

#!/bin/bash

  for loop in `find.-type f-name"*.sql"-print`do

  echo$loop

  mv-f$loop$loop.tmp

  dos2unix$loop.tmp

  file_check_utf8='file_check_utf8.log'

  sed-n'1l'$loop.tmp$file_check_utf810. if grep'^//357//273//277'$file_check_utf8/dev/null 2111. then

  echo'UTF-8 BOM'

  sed-n-e'1s/^...//'-e'w intermediate.txt'$loop.tmp14. iconv-f UTF-8-t GB2312-o$loop intermediate.txt15. rm-rf intermediate.txt

  rm-rf$loop.tmp

  elif iconv-f UTF-8-t GB2312$loop.tmp/dev/null 2118. then

  echo'UTF-8'

   iconv-f UTF-8-t GB2312-o$loop$loop.tmp21. rm-rf$loop.tmp

   else

  echo'ANSI'

  mv-f$loop.tmp$loop

  fi

  rm-rf$file_check_utf8

   #模拟unix2dos,要求文本文件最后一行必须有换行符28. sed-n-e's/$//r/g'-e'w'$loop.tmp$loop29. mv-f$loop.tmp$loop

  done

  

  #!/bin/bash

  for loop in `find.-type f-name"*.sql"-print`do

  echo$loop

  mv-f$loop$loop.tmp

  dos2unix$loop.tmp

  file_check_utf8='file_check_utf8.log'

  sed-n'1l'$loop.tmp$file_check_utf810. if grep'^//357//273//277'$file_check_utf8/dev/null 2111. then

  echo'UTF-8 BOM'

  sed-n-e'1s/^...//'-e'w intermediate.txt'$loop.tmp14. iconv-f UTF-8-t GB2312-o$loop intermediate.txt15. rm-rf intermediate.txt

  rm-rf$loop.tmp

  elif iconv-f UTF-8-t GB2312$loop.tmp/dev/null 2118. then

  echo'UTF-8'

   iconv-f UTF-8-t GB2312-o$loop$loop.tmp21. rm-rf$loop.tmp

   else

  echo'ANSI'

  mv-f$loop.tmp$loop

  fi

  rm-rf$file_check_utf8

   #模拟unix2dos,要求文本文件最后一行必须有换行符28. sed-n-e's/$//r/g'-e'w'$loop.tmp$loop29. mv-f$loop.tmp$loop

  done

解释

1.处理UTF8的BOM,本人没有找到好的办法,最后用sed+grep判断了一下,如果前三个字节是//357//273//277,则文件必定是UTF8,用sed去掉这三个字节再转换

2.为了避免重复或者遗漏,脚本中用iconv对没有BOM的文件尝试转换了一把,转换成功说明文件是UTF8,否则说明是ANSI也就是GB2312

3.关于最后的sed命令,那是因为本人的系统上没有unix2dos命令,所以进行了模拟,目的是为了方便自己在windows下查看和编辑

阅读剩余
THE END