• 字符编码


    我使用的centos7,里面的软件多用utf-8编码,比如gnome-terminal。他的文本界面不支持中文,支持中文似乎要增加内核模块。

    linux中用enca查看文件的编码方式,但有时也会出错(GBK编码方式),如果想确认文件编码方式,可以进入vim中,在命令行中输入 set encoding=gb2312 或者其他的编码方式,文档正确显示则编码方式就时相应的编码;也可以只输入 set fileencoding ,vim会输出文件的编码。

    centos的gnome-terminal终端中默认的编码是utf-8,不能正常显示编码是gb2312、gbk、gb18030的汉字,使用luit转换编码的方式也不能正常显示。这三个编码都是中国的本地编码,gbk是对gb2312的扩展,gb18030是对gbk的扩展,和utf-8不兼容;转换时必须将其转换为unicode,再转换为utf-8,utf-8转换为gb2312也必须经过unicode。



    vim 的字符编码设置选项有:


    set encoding=utf-8            enc,vim内部的编码,包括内存数据和配置文件,默认为$LANG,没有则是latin1,编码应该和终端保持一致
    set fileencodings=utf-8,gb2312,gbk,gb18030      fencs,打开文档时检测文件的编码类型,都不符合时默认使用encoding的设置项打开
    set fileencoding=utf-8            fenc,编辑文件的编码
    set termencoding=utf-8          vim工作的缓冲区的字符编码方式

    具体查看:http://www.cnblogs.com/freewater/archive/2011/08/26/2154602.html

    这样设置之后用vim编辑包含汉字的文档可以在终端正常显示了,因为他们都是utf-8编码。



    文档编码转换:


    使用vim转换:用vim打开文档,在底行模式中输入 set fileencoding=utf-8 就可以将gb2312文档转换为utf-8的文档了。

    使用工具enca:
    enca -L 当前语言 -x 目标编码 文件名    //语言zh_CN

    使用工具转换enconv(常出错):
    enconv -L zh_CN -x UTF-8 filename        gb2312转换为utf-8
    iconv -f GBK -t UTF-8 file1 -o file2        utf-8转换为gbk



    Linux 文件名编码转换:


    原来在windows里的文件都是用GBK编码的,转换使用工具convmv。
    convmv -f 源编码 -t 新编码 [选项] 文件名

    常用选项:
    -r 递归处理子文件夹
    --notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验
    --list 显示所有支持的编码
    --unescap 可以做一下转义,比如把%20变成空格
     
    注意:不要在NTFS和FAT文件 系统中使用此命令,否则可能产生意外结果,如果要在Linux 中正确的显示NTFS和 FAT的中文件名,可以通过mount参数来解决,具体方法查看一下man手册。



    网页编码:


    <meta http-equiv="content-type" content="text/html" charset="utf-8"/>
    使用vim编辑的网页如果没有指定使用什么编码方式,firefox浏览器会默认使用gb2312,而如果网页文件保存的编码是utf-8则会出现乱码。在firefox中的设置方式是有一个字符编码的组件,可以设置firefox网页显示内容的编码,选择unicode就可以显示utf-8编码的网页了,但是建议在网页里直接指定网页显示的编码方式,这样浏览器会自动选择编码方式。对于使用utf-8和gb2312的区别,使用utf-8编码的文档占用的存储空间更大,但是兼容性更好,国际上通用的是utf-8。而gb2312则在国内用得很多。



    编码方式


    分为内码和交换码,内码用于计算机内部处理,交换码用于文件的交换,先将文将由内码转换为交换码,再将交换码转换为另一中编码的内码;ASCII将交换码作为内码使用,汉字编码的内码和交换码不同。

    cp936            中文windows的默认编码
    ucs-bom
    utf-8
    ucs-2
    utf-16
    utf-32
    ucs-4
    gb2312
    gbk
    gb18030
    big5            即大五码,繁体汉字内码,是业界的标准,最新为big5-2003,被包含在交换码CNS11643的附表中。windows繁体版本的编码
    CCCII            中文交换码
    CNS11643        中文交换码



    参考:


    http://i.cnblogs.com/EditPosts.aspx?postid=4923980
    http://www.2cto.com/os/201305/211266.html
    http://bbs.csdn.net/topics/300038221
    http://blog.csdn.net/fmddlmyy/article/details/372148
    http://blog.csdn.net/ultrani/article/details/8432767

  • 相关阅读:
    dotnet C# 根据椭圆长度和宽度和旋转角计算出椭圆中心点的方法
    dotnet 启动进程传入不存在的文件夹作为工作目录行为变更
    WPF 双向绑定到非公开 set 方法属性在 NET 45 和 NET Core 行为的不同
    dotnet 替换 ASP.NET Core 的底层通讯为命名管道的 IPC 库
    使用 WPF 做个 PowerPoint 系列 文本 BodyProperties 的 FontScale 与文本字号缩放
    迁移 dotnet 6 提示必须将目标平台设置为 Windows 平台
    DedeCMS标签替换
    C++函数的默认参数
    C++拷贝构造
    DedeCMS图片路径标签
  • 原文地址:https://www.cnblogs.com/little-snake/p/4923980.html
Copyright © 2020-2023  润新知