Linux下查看txt文档

当我们在使用Window操作系统的时候,可能使用最多的文本格式就是txt了,但是当我们将Window平台下的txt文本文档拷贝到Linux平台下查看时,发现原来的中文全部变成了乱码。没错, 引起这个结果的原因就是两个平台下,编辑器对默认的编码格式是不一样的:

在Window平台下,Notepad的默认编码是ASCII码或者GBK,而在Linux平台下默认的是UTF-8(中文环境的情况),编码的不同导致了原来文档中的中文变成了乱码。

解决办法:

使用iconv命令将文档的编码进行转换即可。

iconv默认情况下,是没有被安装的,下面简单介绍下iconv的安装过程:

1. 下载:

http://www.gnu.org/software/libiconv/#TOCdownloading

2. 安装:

下载完成后,切换到下载目录先进行解压:

$tar -xzvf libiconv-1.14.tar.gz

然后进入解压后的文件中

$cd libiconv-1.14_2

查看其中的README文件,我们可以看到安装步骤:(当然,如果您熟悉源码的安装,这步完全可以省略^-^)

$ ./configure --prefix=/usr/local
$ make
$ make install

3. 命令学习

该工具安装完成后,肯定要先了解下这个命令的用法吧,这个没什么可说的:

$iconv --help

我们会看到下面的内容:

Usage: iconv [OPTION...] [FILE...]
Convert encoding of given files from one encoding to another.

 Input/Output format specification:
  -f, --from-code=NAME       encoding of original text
  -t, --to-code=NAME         encoding for output

 Information:
  -l, --list                 list all known coded character sets

 Output control:
  -c                         omit invalid characters from output
  -o, --output=FILE          output file
  -s, --silent               suppress warnings
      --verbose              print progress information

  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

Mandatory or optional arguments to long options are also mandatory or optional
for any corresponding short options.

说的很明白,就是按照下面的格式进行转换:

iconv -f 原编码 -t 目标编码 要转换的文件

4. 编码转换:

学会了编码的转化,我们就举了例子示范一下:

$iconv -f gbk -t utf8 test.txt

命令执行完成后,你发现原来test.txt中的中文正常显示了,但是打开原来的文件,却发现还是乱码,这个Easy,我们将输出的内容输入到文件中即可。

$iconv -f gbk -t utf8 test.txt -o test

或者执行下面的命令:

$iconv -f gbk -t utf8 test.txt < test

此时我们打开这个test文件就会发现,原来的中文显示正常了^-^

注意:

如果不出意外的话,上面的安装步骤可没有那么顺利,在make的时候,会提示下面的错误:

n file included from progname.c:26:0:
./stdio.h:1010:1: error: ‘gets’ undeclared here (not in a function)
 _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
 ^
make[2]: *** [progname.o] Error 1
make[2]: Leaving directory `/home/freeman/Downloads/libiconv-1.14_2/srclib'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/home/freeman/Downloads/libiconv-1.14_2/srclib'
make: *** [all] Error 2

这个这个软件本身存在的一个Bug,通过Google,发现一个解决该问题的补丁,内容如下:

--- srclib/stdio.in.h.orig      2011-08-07 16:42:06.000000000 +0300
+++ srclib/stdio.in.h   2013-01-10 15:53:03.000000000 +0200
@@ -695,7 +695,9 @@
 /* It is very rare that the developer ever has full control of stdin,
    so any use of gets warrants an unconditional warning.  Assume it is
    always declared, since it is required by C89.  */
-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
+ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
+#endif
 #endif

PS:内容中的"+"表示新增的内容,"-"表示删除的内容!

那我们只要进行如下操作即可解决这个问题:

1. 切换到srclib目录下:

$cd srclib

2. 修改stdio.in.h文件:

$gedit stdio.in.h

通过搜索,定位到_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");这一行,然后在这一行的前后加上条件编译即可,修改后的内容如下:

#if defined(__GLIBC__) && !defined(__UCLIBC__) && !__GLIBC_PREREQ(2, 16)
        _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
#endif

3. 保存退出,然后再进行make, make install便可顺利安装^-^

参考资料:http://forum.z27315.com/topic/15662-%E8%A7%A3%E5%86%B3%E7%BC%96%E8%AF%91libiconv%E6%97%B6%E7%9A%84gets-undeclared-here%E9%94%99%E8%AF%AF/

时间: 2024-11-01 20:43:01

Linux下查看txt文档的相关文章

linux下文件,文档操作命令(一)

打开一个目录(进入此目录):cd   [路径] 创建文档:mkdir  [文件名] 删除目录(仅限于空的目录,删除整个目录需要一层层的删):rmdir 创建空的文件:touch [文件名] 查看文件与目录:ls 修改文档所有者:chown 修改文档所在群组:chgrp 修改文件所属权限     :chmod 查看文件默认权限(将会返回一个数字,后三位是目录与文件中不需要的权限,文件是(-rw-rw-rw-)目录是(drwxrwxrwx)):unmask 文件内容的查阅(nano 可编辑文件) c

Linux下nc传输文档

#接收端开一个接受监听,并指定端口 #接收端IP:8.8.8.8 nc -l 1234 > 1.txt #服务端向接收端IP指定端口发送文件 nc 8.8.8.8 1234 < 1.txt

将txt文档按行分割

昨天遇到了一个需求,需要将txt文档按行分割,并指定了行数, 最近在用python,就在网上搜了一下,在参考了http://blog.csdn.net/zhang_red/article/details/9055965这个帖子后,准备自己改一下 发现原帖代码似乎有点问题,改了下代码如下: # -*- coding: utf-8 -*- import os class SplitFiles(): """按行分割文件""" def __init__(

linux下查看和添加PATH环境变量

linux下查看和添加PATH环境变量 $PATH:决定了shell将到哪些目录中寻找命令或程序,PATH的值是一系列目录,当您运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑你的 PATH 声明,其格式为: PATH=$PATH:<PATH 1>:<PATH 2>:<PATH 3>:------:<PATH N> 你可以自己加上指定的路径,中间用冒号隔开.环境变量更改后,在用户下次登陆时生效,如果想立刻生效,则可执行下面的语句:$ sourc

linux基础之帮助文档---常用的命令[转载]

linux基础之帮助文档查看-2014.2.11 ---常用命令 第一个man:相关命令whatis 1,man手册查找格式 -输入 ? 键,向前查找,如 ?-h ,将会搜索含有"-h"的行 -输入 / 键,向后查找,如 /-k ,将会向后搜索"-k"的行 按 N或者n(下一个)来进行上一个下一个相关匹配项查看. 2,man手册存放的位置 可以通过manpath命令来查看manpage的位置 3,man手册页入口 1 用户指令   2 系统       3 程序库 

Linux 基础命令与文档树

最基础 tab 补全 * 通配符 ctrl+c 中断当前进程 ctrl+d EOF或者exit shift+page down/up 窗口翻页 指令/档案帮助: man page(manual 说明文档)(man的说明见man man) info page 可读性更强的man(linux独有) 程序说明文档 usr/share/doc 系统状态: who 当前在线用户 netstat 网络状态 ps -aux 正在活动的进程 ls 即list,列出当前目录下的文档/目录 ls -l 列出文档的同

pdf文档如何转换成txt文档

TXT文档是一种最常见的文件格式,用来储存文本信息的,就跟记事本一样,有时候我们在网上下载了一个PDF文件需要编辑的时候,我们是不是可以采取一个方法将PDF文件转TXT文件呢,小编跟大家简单的讲解一下PDF文档转TXT文档的方法吧.1.转换的时候,我们要借助一些外来的工具进行帮忙,我们要在搜索框中输入关键词迅捷PDF转换器,将其下载安装下来.2.安装成功之后,我们打开工具,用鼠标点击一下栏目分类下面的PDF文件转其他文件,分类会展现出来,我们点击到文件转TXT就可以了.3.找到这个转换功能之后,

Linux下查看文件和文件夹大小 删除日志

场景:在sts中执行自动部署时候maven提示No space left on device错误,后来经检查发现是磁盘空间满了,用下面的方法分析发现tomcat下面的logs目录占用了很大的空间,删除多余的日志问题解决! 1 Linux下查看文件和文件夹大小 当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择. df可以查看一级文件夹大小.使用比例.档案系统及其挂入点,但对文件却无能为力.  du可以查看文件及文件夹的大小. 两者配合使用,非常有效.比如用df查看哪个一

(转)创建和查看Javadoc文档

原地址:http://jinnaxu-tju-edu-cn.iteye.com/blog/667177 Javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类.方法.成员等注释形成一个和源代码配套的API帮助文档.也就是说,只要在编写程序时以一套特定的标签作注释,在程序编写完成后,通过Javadoc就可以同时形式程序的开发文档了. javadoc是生成一个java api文档生成工具,存在于jdk安装目录下的bin目录中. 说明:生成javadoc 不要求你的java代码是可编译的.唯