热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

filereader读取文件乱码,aix查看文件编码

Windows中默认的文件格式是GBK,而Linux一般都是UTF-8。然而不幸的是,和很多来自Linux世界的软件一样,这需要你自己动手设置。如果vim所在的term与vim编码


如果需要在Linux上操作windows下的文件,则可能会经常出现文件编码转换问题。 Windows上的缺省文件格式为gbk(GB2312 ),但Linux通常为UTF-8。 本节介绍如何在Linux上显示文件编码,以及如何对文件进行编码转换。


查看文件编码


要在Linux上查看文件编码,请执行以下操作:


1 .可以直接在VIM上看到文件编码


:设置文件编码


显示文件的编码格式。


如果要查看其他编码文件,或者希望解决Vim中文件乱码的问题,请执行以下操作


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


set encoding=utf-8文件encodings=UCS-BOM,utf-8,cp936


这样,vim就可以自动识别使用UTF-8或GBK编码的文件编码。 实际上,请按照文件编码提供的编码列表进行尝试,如果找不到合适的编码,请用Latin-1 ) ascii )编码打开。


文件编码转换


1 .用Vim直接对转换文件进行编码,如将一个文件转换为utf-8格式


:set fileencoding=utf-8


2. iconv转换、iconv的指令格式如下。


iconv-f编码- tencodinginputfile


例如,将UTF-8编码文件转换为GBK编码


iconv -f GBK -t UTF-8 file1 -o file2


文件名转换:


将文件从Linux复制到windows或将文件从windows复制到Linux时,中文文件名可能会变成乱码。 为了解决这个问题,windows的文件名的中文代码默认为GBK,而在Linux中默认的文件名代码为UTF8,因此代码不一致,因此会产生文件名乱码的问题,从而解决这个问题


Linux提供了一个工具convmv,可以将文件名从GBK转换为UTF-8,也可以将UTF-8转换为GBK。


首先,检查系统中是否安装了convmv,如果没有,请使用:


yum -y install convmv


安装。


让我们来看看convmv的具体使用方法。


convmv -f源代码-t新代码[选项]文件名


一般参数:


递归处理-r子文件夹


--notest实际上进行操作。 请注意,缺省情况下并不实际处理文件,而只是一个实验。


--list显示所有支持的代码


--unescap可以退出。 例如设为空间


例如,有一个转换为GBK编码的utf8编码文件名。 命令如下所示。


convmv -f UTF-8 -t GBK --notest utf8编码文件名


这样转换会将“用utf8编码的文件名”转换为GBK编码。 (只有文件名编码的转换,文件内容不会改变。 )


vim编码设置


与所有常规文本编辑器一样,Vim可以很好地编辑各种字符编码文件。 这当然包括常用的Unicode编码方法,如UCS-2和UTF-8。 但不幸的是,像许多来自Linux世界的软件一样,它需要自己设置。


Vim有四个与字符编码相关的选项:编码、文件编码、文件编码和终端编码。 有关这些选项的可能值,请参阅Vim联机帮助3:help encoding-names。 这些意思是3360


* encoding: Vim内部使用的字符编码方法。 包括虚拟机缓冲区、菜单文本、消息文本等。 默认值是基于您的locale选择的。 虽然用户手册建议只在. vimrc中更改值,但实际上只在. vimrc中更改值似乎很有意义。 可以用其他代码编辑并保存文件。 例如,如果vim的编码是utf-8,并且您编辑的文件使用cp936编码,则vim会自动将导入的文件转换为utf-8。 另外,粗暴的哈士奇被写入文件时,会自动返回cp936。


*当前在文件编码: vim中编辑的文件的字符编码。 用Vim保存文件时,无论是否是新文件,文件也会以这种字符编码方式保存。


*文件编码: vim自动检测文件编码序列列表,启动时根据列出的字符编码逐个检测即将打开的文件的字符编码,将文件编码因此,希望将Unicode编码方案放在该列表的开头,并将拉丁语编码方案latin1放在最后。


*运行* termencoding: Vim的终端或Windows控制台窗口的字符编码。 如果vim与vim代码位于同一term中,则不需要进行设置。

如其不然,你可以用vim的termencoding选项将自动转换成term 的编码.这个选项在 Windows 下对我们常用的 GUI 模式的 gVim 无效,而对 Console 模式的Vim 而言就是 Windows 控制台的代码页,并且通常我们不需要改变它。

好了,解释完了这一堆容易让新手犯糊涂的参数,我们来看看 Vim 的多字符编码方式支持是如何工作的。

1. Vim 启动,根据 .vimrc 中设置的 encoding 的值来设置 buffer、菜单文本、消息文的字符编码方式。

2. 读取需要编辑的文件,根据 fileencodings 中列出的字符编码方式逐一探测该文件编码方式。并设置 fileencoding 为探测到的,看起来是正确的 (注1) 字符编码方式。

3. 对比 fileencoding 和 encoding 的值,若不同则调用 iconv 将文件内容转换为encoding 所描述的字符编码方式,并且把转换后的内容放到为此文件开辟的 buffer 里,此时我们就可以开始编辑这个文件了。注意,完成这一步动作需要调用外部的 iconv.dll(注2),你需要保证这个文件存在于 $VIMRUNTIME 或者其他列在 PATH 环境变量中的目录里。

4. 编辑完成后保存文件时,再次对比 fileencoding 和 encoding 的值。若不同,再次调用 iconv 将即将保存的 buffer 中的文本转换为 fileencoding 所描述的字符编码方式,并保存到指定的文件中。同样,这需要调用 iconv.dll由于 Unicode 能够包含几乎所有的语言的字符,而且 Unicode 的 UTF-8 编码方式又是非常具有性价比的编码方式 (空间消耗比 UCS-2 小),因此建议 encoding 的值设置为utf-8。这么做的另一个理由是 encoding 设置为 utf-8 时,Vim 自动探测文件的编码方式会更准确 (或许这个理由才是主要的 ;)。我们在中文 Windows 里编辑的文件,为了兼顾与其他软件的兼容性,文件编码还是设置为 GB2312/GBK 比较合适,因此 fileencoding 建议设置为 chinese (chinese 是个别名,在 Unix 里表示 gb2312,在 Windows 里表示cp936,也就是 GBK 的代码页)。

转载自:http://www.eb163.com/club/thread-1733-1-1.html


推荐阅读
  • Java和JavaScript是什么关系?java跟javaScript都是编程语言,只是java跟javaScript没有什么太大关系,一个是脚本语言(前端语言),一个是面向对象 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • PHPMailer邮件类邮件发送功能的使用教学及注意事项
    本文介绍了使用国外开源码PHPMailer邮件类实现邮件发送功能的简单教学,同时提供了一些注意事项。文章涵盖了字符集设置、发送HTML格式邮件、群发邮件以及避免类的重定义等方面的内容。此外,还提供了一些与PHP相关的资源和服务,如传奇手游游戏源码下载、vscode字体调整、数据恢复、Ubuntu实验环境搭建、北京爬虫市场、进阶PHP和SEO人员需注意的内容。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • Android工程师面试准备及设计模式使用场景
    本文介绍了Android工程师面试准备的经验,包括面试流程和重点准备内容。同时,还介绍了建造者模式的使用场景,以及在Android开发中的具体应用。 ... [详细]
  • 基于Socket的多个客户端之间的聊天功能实现方法
    本文介绍了基于Socket的多个客户端之间实现聊天功能的方法,包括服务器端的实现和客户端的实现。服务器端通过每个用户的输出流向特定用户发送消息,而客户端通过输入流接收消息。同时,还介绍了相关的实体类和Socket的基本概念。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 篇首语:本文由编程笔记#小编为大家整理,主要介绍了软件测试知识点之数据库压力测试方法小结相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 本文总结了解决python文件读写乱码问题的方法。其中包括错误的打开方式和正确的打开方式,并提供了相应的代码示例。建议在进行写入操作后先将文件关闭,然后再打开,最后再读取文件。若文件编码是utf-8,则需要在读取文件时添加decode('utf-8')。这样操作可以避免在打开记事本时出现乱码问题。 ... [详细]
  • 恶意软件分析的最佳编程语言及其应用
    本文介绍了学习恶意软件分析和逆向工程领域时最适合的编程语言,并重点讨论了Python的优点。Python是一种解释型、多用途的语言,具有可读性高、可快速开发、易于学习的特点。作者分享了在本地恶意软件分析中使用Python的经验,包括快速复制恶意软件组件以更好地理解其工作。此外,作者还提到了Python的跨平台优势,使得在不同操作系统上运行代码变得更加方便。 ... [详细]
author-avatar
兰勇2502919543
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有