精华内容
下载资源
问答
  • linux 中encoding
    千次阅读
    2016-12-23 15:36:43

    我们经常会遇到使用vi打开一个文件时出现乱码的情况,其实可以通过fileencodings来解决,
    vi中一共有三个变量来控制encoding,分别为
    encoding控制当前使用什么编码来显示
    fileencoding表示将当前的文件转换成什么编码,注意设置之后文件的编码已经被改变,w之后就会变成该编码格式
    fileencodings表示vi将在列表所指定的编码方式中尝试打开文件,所以一般我们只需要这个为gbk或utf8就可以

    set fileencodings=utf8,gbk
    更多相关内容
  • 或者# wgethttp://download.csdn.net/detail...解压# tar -zxvf mod_encoding_64.tar.gz3.iconv_hook编译和安装安装mod_encoding前首先需要安装iconv_hook。#cd mod_encoding_64/lib#./configure#make#su# make inst...

    或者

    # wget http://download.csdn.net/detail/wmwyyx/8930885

    2.解压

    # tar -zxvf mod_encoding_64.tar.gz

    3.iconv_hook编译和安装

    安装mod_encoding前首先需要安装iconv_hook。

    # cd mod_encoding_64/lib

    # ./configure

    # make

    # su

    # make install

    完成上面操作后,iconv_hook相关so文件放到/usr/local/lib下面。

    要操作系统系统能够搜索到该so文件,需要完成一下几行操作

    打开/etc/ld.so.conf文件,添加一行指向iconv_book的所在路径,即"/usr/local/lib"

    # vi /etc/ld.so.conf

    添加一行

    /usr/local/lib

    保存,退出

    4.刷新库

    #PATH="$PATH:/sbin"

    #ldconfig

    5.mod_encoding模块的编译

    # cd ..

    # patch -p0 < mod_encoding.c-apache2.2-20060520.patch

    # ./configure --with-apxs=/usr/bin/apxs --with-iconv-hook=/usr/local/include

    # make

    # ls –l

    查看是否已经生成了mod_encoding.o文件,如果有,则make成功继续第6步的操作。

    如果make出错,提示Apache目录/bin/apxs目录不存在,可以这样试一试

    # which apxs

    然后将打印出的路径替换usr/bin/apxs,

    我的路径是:usr/bin/apxs。

    如果显示 no apxs 那么就安装apxs组件,

    # yum install httpd-devel

    在make一次。

    6.

    #gcc -shared -o mod_encoding.so mod_encoding.o -Wc,-Wall -L/usr/local/lib -Llib -liconv_hook

    如果提示不认识-Wc, -Wall的选项就直接省掉,gcc -shared -o mod_encoding.so mod_encoding.o -L/usr/local/lib -Llib -liconv_hook

    #cp mod_encoding.so /usr/lib/httpd/modules/mod_encoding.so

    如果没有/usr/lib/httpd/modules这个目录,那么就是在/usr/lib64/httpd/modules这个目录下

    在配制Apache配置文件

    #vi /www/conf/httpd.conf

    在文件最后添加:

    LoadModule encoding_module /usr/lib/httpd/modules/mod_encoding.so

    或者

    LoadModule encoding_module /usr/lib64/httpd/modules/mod_encoding.so

    Header add MS-Author-Via "DAV"

    EncodingEngine on

    NormalizeUsername on

    SetServerEncoding GBK

    DefaultClientEncoding UTF-8 GBK GB2312

    AddClientEncoding "(Microsoft .* DAV $)" UTF-8 GBK GB2312

    AddClientEncoding "Microsoft .* DAV" UTF-8 GBK GB2312

    AddClientEncoding "Microsoft-WebDAV*" UTF-8 GBK GB2312

    大功告成,重启Apache

    # service httpd restart

    展开全文
  • 查看文件编码在Linux中查看文件编码可以通过以下几种方式:1.在Vim 可以直接查看文件编码:set fileencoding即可显示文件编码格式。如果你只是想查看其它编码格式的文件或者想解决 用Vim查看文件乱码的问题,那么你...

    查看文件编码

    在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 GBK -t UTF-8 file1 -o file2

    乱码原因:

    因为你的文件声明为utf-8,并且也应该是用utf-8的编码保存的源文件。但是windows的本地默认编码是cp936,也就是gbk编码,所以在控制台

    直接打印utf-8的字符串当然是乱码了。

    解决方法:

    在控制台打印的地方用一个转码就ok了,打印的时候这么写:

    print myname.decode(‘UTF-8‘).encode(‘GBK‘)

    比较通用的方法应该是:

    import sys

    type = sys.getfilesystemencoding()

    print myname.decode(‘UTF-8‘).encode(type)

    最近利用python抓取一些网上的数据,遇到了编码的问题。非常头痛,总结一下用到的解决方案。

    linux中vim下查看文件编码的命令 set fileencoding

    python中一个强力的编码检测包 chardet ,使用方法非常简单。linux下利用pip install chardet实现简单安装

    fencoding输出格式 {‘confidence‘: 0.96630842899499614, ‘encoding‘: ‘GB2312‘} ,只能判断是否为某种编码的概率。比较准确的结果了。输入参数为str类型。

    了解python中str的编码后可以利用decode和encode来实现编码的转换。

    一般流程是str利用decode方法根据str的编码将其解码为unicode字符串类型,然后利用encode根据特定的编码将unicode字符串类型转换为特定的编码。python中str和unicode属于两种不同的类型,如下。

    20190725002939859317.png

    一般情况下window默认编码gbk,linux默认编码utf8

    python编程中 系统编码,python编码,文件编码 的概念。

    系统编码:默认写源码的编辑器的编码方式。它代表源码文件内的所有内容都是根据词方式编码成二进制码流。存入到磁盘中的。linux下通过locale命令查看。

    python编码:指python内设置的解码方式。如果不设定的话,python默认的是ascii解码方式。如果python源代码文件中不出现中文的话,这个地方怎么设定应该不会问题。

    设定方法:在源码文件开头(一定是第一行):#-*-coding:UTF-8-*-,源码文件的设置解码方式是UTF-8 或者

    文件编码:文本的编码方式,linux下vim利用set fileencoding查看。

    一般情况下输出乱码的原因就是 没有按照系统解码的方式进行编码。

    比如print s, s类型为str,linux系统下系统默认编码为utf8编码,s在输出前就应该编码为utf8。如果s为gbk编码就应该这样输出。print s.decode(‘gbk‘).encode(‘utf8‘)才能输出中文。

    window下面情况相同,window默认编码为gbk编码,所以s输出前必须编码为gbk。

    python处理中一般处理unicode类型。这样输出前直接编码即可。

    转1. http://blog.sina.com.cn/s/blog_40e1ba640102wm26.html

    2.http://www.cnblogs.com/joeyupdo/archive/2013/03/03/2941737.html

    以下为copy链接2中的介绍

    (1)encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义

    (2)fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此),网上是这样介绍的,但是我这样做在.vimrc中定义为utf-8似乎没有作用,只能在打开vim文件时手动设置才会起效,不知道什么原因。

    (3)fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。

    (4)termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

    系统locale是utf-8(很多linux系统默认的locale形式),编辑的文档是GB2312或GBK形式的(Windows记事本

    默认保存形式,大部分编辑器也默认保存为这个形式,所以最常见),终端类型utf-8(也就是假定客户端是putty类的unicode软件)

    则vim打开文档后,encoding=utf-8(locale决定的),fileencoding=latin1(自动编码判断机制不准导致的),termencoding=空(默认无需转换term编码),显示文件为乱码。

    解决方案1:首先要修正fileencoding为cp936或者euc-cn(二者一样的,只不过叫法不同),注意修正的方法不是:set

    fileencoding=cp936,这只是将文件保存为cp936,正确的方法是重新以cp936的编码方式加载文件为:edit

    ++enc=cp936,可以简写为:e ++enc=cp936。

    但是这样做,文件关闭后重新打开又要重新设置一遍。出现乱码归根结底的原因是vim不能识别该文件的编码方式,导致不能正常解码(不知道是不是叫解码,我的理解)。所以,我在.vimrc中设置了fileencodings,相当于告诉vim当以utf-8解码文件不成功时以这么几种方式尝试,set fileencoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936,latin1. 这样打开正常了

    原文:https://www.cnblogs.com/klb561/p/11241664.html

    展开全文
  • Vim编码的详细介绍 Vim和所有的流行文本编辑器一样,Vim 可以很好的编辑各种字符编码的文件,这当然包括 UCS-2、UTF-8 等流行的 Unicode 编码方式。 Vim 有四个跟字符编码...用户手册上建议只在 .vimrc 改变它的值
  • 今天做了一个JSP页面,运行时tomcat提示:org.apache.jasper.JasperException: Unsupported encoding: gb2312 错误,找了很久才找到出错的地方,原来是一个空格惹的祸。
  • 转1. ...以下为copy链接2的介绍 (1)encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等

    转1. http://blog.sina.com.cn/s/blog_40e1ba640102wm26.html

    2.http://www.cnblogs.com/joeyupdo/archive/2013/03/03/2941737.html
    以下为copy链接2中的介绍
    (1)encoding: Vim 内部使用的字符编码方式,包括 Vim 的 buffer (缓冲区)、菜单文本、消息文本等。用户手册上建议只在 .vimrc 中改变它的值,事实上似乎也只有在 .vimrc 中改变它的值才有意义

    (2)fileencoding: Vim 中当前编辑的文件的字符编码方式,Vim 保存文件时也会将文件保存为这种字符编码方式 (不管是否新文件都如此),网上是这样介绍的,但是我这样做在.vimrc中定义为utf-8似乎没有作用,只能在打开vim文件时手动设置才会起效,不知道什么原因。

    (3)fileencodings: Vim 启动时会按照它所列出的字符编码方式逐一探测即将打开的文件的字符编码方式,并且将 fileencoding 设置为最终探测到的字符编码方式。因此最好将 Unicode 编码方式放到这个列表的最前面,将拉丁语系编码方式 latin1 放到最后面。

    (4)termencoding: Vim 所工作的终端 (或者 Windows 的 Console 窗口) 的字符编码方式。这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的 Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

    系统locale是utf-8(很多linux系统默认的locale形式),编辑的文档是GB2312或GBK形式的(Windows记事本
    默认保存形式,大部分编辑器也默认保存为这个形式,所以最常见),终端类型utf-8(也就是假定客户端是putty类的unicode软件)
    则vim打开文档后,encoding=utf-8(locale决定的),fileencoding=latin1(自动编码判断机制不准导致的),termencoding=空(默认无需转换term编码),显示文件为乱码。
    解决方案1:首先要修正fileencoding为cp936或者euc-cn(二者一样的,只不过叫法不同),注意修正的方法不是:set
    fileencoding=cp936,这只是将文件保存为cp936,正确的方法是重新以cp936的编码方式加载文件为:edit
    ++enc=cp936,可以简写为:e ++enc=cp936。

    但是这样做,文件关闭后重新打开又要重新设置一遍。出现乱码归根结底的原因是vim不能识别该文件的编码方式,导致不能正常解码(不知道是不是叫解码,我的理解)。所以,我在.vimrc中设置了fileencodings,相当于告诉vim当以utf-8解码文件不成功时以这么几种方式尝试,set fileencoding=utf-8 set fileencodings=ucs-bom,utf-8,cp936,latin1. 这样打开正常了

    展开全文
  • Linux终端显示中文与vi 显示中文设置

    千次阅读 2021-05-13 00:53:20
    #uname -aLinux localhost.localdomain 2.6.9-42.ELsmp #1 SMP Sat Aug 12 09:39:11 CDT 2006 i686 i686 i386 GNU/Linux1. Linux控制台终端显示中文修改 /etc/sysconfig/i18n 文件如下:#LANG="en_US.UTF-8"LANG="zh...
  • linux下 vim 打开中文乱码latin1

    千次阅读 2021-05-08 21:18:48
    :edit ++enc=utf-8[zz]http://blog.sina.com.cn/s/blog_8f398540010158fh.html最后来看看处理中文文档最典型的几种情况和设置方式:1,系统locale是utf-8(很多linux系统默认的locale形式),编辑的文档是GB2312或GBK...
  • 脚本可以批量去除XML文件的“1.0“ encoding=“utf-8“?>
  • mb_convert_encoding这个函数是用来转换编码的。原来一直对程序编码这一概念不理解,不过现在好像有点开窍了。不过英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用Zend Studio或Editplus写程序时,...
  • 其他的与上面方案1相同,只是要增加一步,:set termencoding=cp936 解决方案2:与上面方案2类似,不过最后一步修改termencoding省略即可,在此情况下需要的修改最少,只要以locale为zh_CN开 启vim,则encoding=euc-...
  • javac -encoding 用法详解

    2020-08-31 23:06:18
    当我们编辑了一个Java源文件保存时,是以操作系统默认的字符编码保存的(Windows xp默认字符集是GBK)。这篇文章主要介绍了javac -encoding 用法详解,非常具有实用价值。
  • linux解决vim中文乱码问题

    千次阅读 2021-12-30 13:57:40
    使用vim打开配置文件/etc/vim/vimr或者~/.vimrc,具体操作如下: #方式一: vim /etc/vim/vimr #方式二: vim ~/.vimrc 在打开的文件末尾添加如下内容: set fileencodings=utf-8...set encoding=prc 保存退出即可。
  • 前言 我在使用阿里云centos7.4布置django网站的时候,因为自带的是python2,而我需要的是python3。为了图方便我安装了anaconda来引入python3,但是造成了不少的环境混乱的问题,在启动uwsgi的时候会报错找不到python...
  • Linux启动jar包,输出中文日志变为??问号
  • Linux下开发,经常遇到乱码问题:shell或者vim显示不了中文,或者能够显示,但不能输入中文。每次都是上网去搜,或者同事告诉我一些命令来解决的。一直没有理解为什么会出乱码,本文就是想认真分析乱码问题的...
  • linux中字符乱码解决方法介绍

    千次阅读 2021-05-13 18:50:06
    远程登录linux服务器用vim在终端下编辑查看文件经常会遇见各种中文乱码问题。做如下设置可基本解决vim中文乱码问题首先查看系统对中文的支持locale -a | grep zh_CN输出样例如下zh_CN.gbkzh_CN.utf8vim 只能正确识别...
  • mod_encoding-

    2018-11-12 22:01:08
    linux 64位系统 mod_encoding解决中文文件名不能访问的问题
  • ^M符号的问题在Windows系统下编辑的文件,换行符回车的格式为'\r\n',在linux系统下,回车的格式为'\n',在Windows下编辑的文本文件在上传至linux服务器时,回车'\r\n'就显示成^M+'\n'。在Windows环境下用ultraedit...
  • Linux下中文显示乱码 -- linux编码转换

    千次阅读 2021-07-31 22:07:23
    Linux在稳定运行服务器的方面 一直是霸主 如此优秀 优秀 优秀的 人类高质量机器(狗头) ~~~~~~~~~~~~优雅~~~~~~~~~~~~ Linux下中文显示乱码,即编码转换的问题。编码转换的问题,前面的文章已经有过...
  • 前言 我们在使用Linux系统,经常会发生这样一类问题。文件的中文部分出现乱码。有的时候,是文件名的中文...其在windows打开显示正常,在Linux中,中文部分显示为乱码。 注意:这个与mysql乱码的情况不...
  • 简单说PATH就是一组路径的字符串变量,当你输入的命令不带任何路径时,LINUX会在PATH记录的路径查找该命令。有的话则执行,不存在则提示命令找不到。比如在根目录/下可以输入命令ls,在/usr目录下也可以输入ls,但...
  • 其在windows打开显示正常,在Linux中,中文部分显示为乱码。 注意:这个与数据库乱码的情况不同,属于文件内容的乱码。 2,分析 Linux系统与windows系统在编码上有显著的差别。Windows的文件的格式默认是...
  • linux下 java 创建中文文件名乱码问题

    千次阅读 2021-02-28 12:03:58
    今天项目遇到通过web上传文件到文件... 通过日志打印System.getProperty(“file.encoding”)也是utf-8码。。。。一时凌乱了!! 最后通过查资料,发现通过Java写文件时文件名编码和System.getProperty(“sun.jnu...
  • **文件名显示为: ??.txt 1.一开始我以为是创建文件的时候文件名需要编码解码,于是在代码里采用下面的方式 使用String.getBytes(指定编码)...2.然后网上查资料看到有一个System.getProperty(“file.encoding”),
  • 1、linux下的QT导入项目出现错误。Error:Could not decode "xxx" with "UTF-8"-encoding.Editing not possible 2、点击“Select Encoding”按钮,选择GBK等(选什么不重要)编码,点击按编码重新载入,这样文件就...
  • python的open()函数中encoding参数的问题

    万次阅读 多人点赞 2019-04-26 20:45:55
    python的open()函数中encoding参数的问题 ** 最近在用python打开文本文件进行词频统计时遇到一个问题 txt = open("threekingdoms.txt", "r", encoding ='utf-8').read() 运行后会出现UnicodeDecodeError异常 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 138,808
精华内容 55,523
关键字:

linux 中encoding