linux系统下 文件夹和文件的字符集编码方式转换
网站有一些课件资源是从windows传到Linux服务器,在windows下文件夹编码方式为GBK,而浏览器默认的编码模式为UTF-8(服务器默认编码也为UTF-8),如此,便导致了类似http://xxxx//Resources/北师大/初中语文/八年级上/本册综合/绿ppt 这样的域名的无法访问,提示找不到资源。
解决办法:用convmv工具将Resources目录下的所有文件的名称使用utf-8重新编码
下载convmv:wget https://wwwj3ede/linux/convmv/convmv-115targz
注:若用ftp客户端访问资源时,遇到乱码情况,也请核实客户端编码方式和服务器是否一致
make clean
make install
/convmv -f GB2312 -t UTF-8 -r --notest /Resources/
以上讲述了在linux下修改目录名编码的方法,再扩展一下文件内容更改编码的方法
1在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:set fileencoding=utf-8
2 iconv 转换,iconv的命令格式如下:
iconv -f encoding -t encoding inputfile
比如将一个UTF-8 编码的文件转换成GBK编码
iconv -f GBK -t UTF-8 file1 -o file2
查看文件编码是set fileencoding 解决用Vim查看文件乱码的问题在~/vimrc文件添加
set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936
我不清楚你的环境是什么 (发行版,字符模式命令行,还是图形模式终端)
以我在字符模式命令行下的测试, 如果不加载zhcon或者fbterm之类的程序
cat more less等都无法正常显示gb2312字符, 不管LANG的设置是什么
而且这些程序不存在什么默认输出 都是调用gettext库来实现的
怪不得 这个跟远程服务器上的locale无关, 主要看你的secureCRT里面的字符编码设置 这个具体我也不太清楚了,因为很少用secureCRT , 但是我用putty测试了一下,文件是GB2312编码,远程是LANG=C ,putty设置为use font encoding , cat less more都正常显示汉字
换GBK测试也通过 不知道你的怎么回事
Linux系统有一个od命令,可以将文件的内容以16进制形式显示出来,它的用法是这样的:
od -t xCc 文件名
-t xCc表示用16进制来输出文件的内容,同时用ASCII字符对照显示,例子:
od -t xCc /etc/issue
如何更改linux文件目录拥有者及用户组?
更改Linux文件目录的拥有者可以用chown命令,chown的意思就是changeowner,它的用法是:chown用户名:用户组名文件或目录用户名是需要修改成哪个用户所有,用户组名是修改成哪个用户组(厉害不,还能修改所属用户组),注意用户名和组名之间的那个冒号是英文冒号,后面接着是需要修改的文件或目录,一个示例:
chownroot:root/home/mydir示例将/home/mydir目录的拥有者修改为root,所属用户组修改为root用户组。
如果只想修改拥有者呢,那只给出一个用户名就可以了,就像下面这样:
chownroot/home/testfile注意:chown有一个选项,对于修改目录的所有者很有用,那就是-R选项,-R选项表示递归修改,就是连目录下的子目录里面的所有文件、目录都修改所有者。
如果只想修改文件或目录所属用户组呢,那可以用chgrp命令,用法和chown类似:chgrp用户组文件或目录chgrp命令也有一个-R选项噢,和chown的-R选项用法一样,都是用于目录。
Linux系统里包含Linux专用头文件的开源程序怎么转换成Windows下的exe程序?
可以用cygwin里的gcc直接编译,只不过运行的时候需要cygwin环境不嫌麻烦的话那些函数你也可以用windowsapi实现一遍
linux把文件压缩成targz的命令?
1、连接上相应的linux主机,进入到等待输入shell指令的linux命令行状态下。
2、在linux命令行下输入shell指令:tar-czftesttargztesttxt。
3、最后,按下回车键执行shell指令,此时会看到testtxt被成功压缩为testtargz。
linux中转换windows文件编码?
查看文件编码
在Linux中查看文件编码可以通过以下几种方式:
1在Vim中可以直接查看文件编码
:setfileencoding
即可显示文件编码格式。
如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/vimrc文件中添加以下内容:
setencoding=utf-8fileencodings=ucs-bom,utf-8,cp936
这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。
文件编码转换
1在Vim中直接进行转换文件编码,比如将一个文件转换成utf-8格式
:setfileencoding=utf-8
2iconv转换,iconv的命令格式如下:
iconv-fencoding-tencodinginputfile
比如将一个UTF-8编码的文件转换成GBK编码
iconv-fGBK-tUTF-8file1-ofile2
iconv-fgbk-tutf8linux常用命令txt>linux常用命令txtutf8
文件名编码转换:
从Linux往windows拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名中文编码默认为GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。
在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。
首先看一下你的系统上是否安装了convmv,如果没安装的话用:
yum-yinstallconvmv
安装。
下面看一下convmv的具体用法:
convmv-f源编码-t新编码文件名
常用参数:
-r递归处理子文件夹
--notest真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
--list显示所有支持的编码
--unescap可以做一下转义,比如把%20变成空格
比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下:
convmv-fUTF-8-tGBK--notestutf8编码的文件名
这样转换以后"utf8编码的文件名"会被转换成GBK编码(只是文件名编码的转换,文件内容不会发生变化)
怎么把文件转化为linux文件?
把Dos/Windows下的文件移至Linux/Unix系统
虽然很多程序不在乎DOS/Windows格式的CR/LF文本文件,但是有几个程序却在乎--最著名的是bash,只要一遇到回车,它就会出问题。以下sed调用将把DOS/Windows格式的文本转换成可信赖的UNIX格式:
$sed-e's/$//'mydostxt>myunixtxt
该脚本的工作原理很简单:替代规则表达式与一行的最末字符匹配,而该字符恰好就是回车。我们用空字符替换它,从而将其从输出中彻底删除。如果使用该脚本并注意到已经删除了输出中每行的最末字符,那么,您就指定了已经是UNIX格式的文本文件。
1,使用file 命令查看文件的编码格式
[root@dep-184 /]# file 1txt
1txt: ISO-8859 text
2,vim 命令
使用vim命令进入文件 1txt,然后在使用 “:set fileencoding” 查看文件当前展示的编码格式(这里必须确保展示内容无乱码,才可以得到内容真实的编码格式)
3,enca命令 《Linux就该这么学》
使用enca可以直接查看文件内容的编码格式,如下
[root@dep-184 /]# enca 1txt
Simplified Chinese National Standard; GB2312
-----Window下下查看及更改oracle字符集编码打开注册表--HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\HOMExx\NLS_LANG修改NLS_LANG的键值# 常用中文字符集
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
gbk
-t
utf-8
file1
-o
file2
查看文件编码file命令
file
iptxt
iptxt:
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
aaatxt
>bbbtxt
这个命令读取aaatxt文件,从utf-8编码转换为gb2312编码,其输出定向到bbbtxt文件。
0条评论