当前位置: 首页 > news >正文

第寒网站建设移动惠生活app下载网址

第寒网站建设,移动惠生活app下载网址,上海牛巨微seo关键词优化,自己做的网站有什么用Vim 编码问题详解 vim 中有 4 个与编码相关的配置#xff0c;分别是 encoding、termencoding、fileencoding 和 fileencodings。在实际使用中任何一个配置有问题都可能会导致乱码#xff0c;因此我们应该清楚每个配置的含义。 1. encoding encoding 是 vim 内部使用的字符编…Vim 编码问题详解 vim 中有 4 个与编码相关的配置分别是 encoding、termencoding、fileencoding 和 fileencodings。在实际使用中任何一个配置有问题都可能会导致乱码因此我们应该清楚每个配置的含义。 1. encoding encoding 是 vim 内部使用的字符编码格式。vim 内部所有的 buffer、寄存器、脚本中的字符串等都使用的是该配置的编码格式。如果文件的编码格式与内部编码格式不一致则会先转为内部的编码格式如果无法转换则无法转换的字符会丢失。因此在设置内部编码时应该选择一种表现力足够的编码即编码范围大的格式比如 UTF-8。 由于 encoding 配置涉及 vim 中所有的字符的内部编码方式因此只能在 vim 启动的时候进行设置。如果没有特殊需求请始终将 encoding 设置为 UTF-8。 为了避免在非 UTF-8 的系统下比如 Windows菜单和系统提示出现乱码可以进行如下配置 set encodingutf-8 set langmenuzh_CN.UTF-8 language message zh_CN.UTF-82. termencoding termencoding 是 Vim 用于屏幕时的编码格式在显示的时候vim 会把内部编码encoding转换为屏幕编码格式然后再输出到屏幕。如果内部编码中含有无法转换为屏幕编码的字符那么该字符就会变成问号但是不会影响编辑操作。 比如当在 Windows 中使用模拟终端远程连接服务器时由于 Windows 中的模拟终端编码设置为 GBK 格式而 Linux 中使用 UTF-8 编码那么终端中的字符就会乱码此时有两种方式可以解决此类乱码问题 把 vim 的 encoding 改为 GBK此时其内部的编码格式buffer 中的编码格式与终端的格式就一致了。更改 termencoding 编码格式为 GBK让 vim 将 buffer 中的字符在显示的时候转换为 GBK 编码这样终端就可以正常显示了。 对于第一种解决方式如果遇到编辑的文件中含有 GBK 无法表示的字符时这些字符就会丢失。使用第二种方式的时候虽然无法正常显示但是仍然可以正常编辑(不会影响 buffer 中的内容)。故推荐使用第二种方式。 对于图形界面的下的 Gvim它的显示不依赖于终端因此 termencoding 配置无意义。在 GTK2 下的 Gvim 中termencoding 始终是 utf-8不能修改。Windows 下的 Gvim 则忽略 termencoding 的配置。 3. fileencoding 当 Vim 从磁盘中读取文件时会对文件编码格式进行检测如果文件的编码方式和内部编码方式encoding不同就会将其转换为内部编码格式。转换完毕后Vim 会将 fileencoding 设置为文件的编码检测过程中识别出的编码。 当 vim 对文件进行保存时如果 encoding(内部使用的编码) 和 fileencoding(文件编码) 不一致就会进行编码转换将 buffer 中的数据由 encoding 格式转换成 fileencoding 格式(即原本的文件格式)。 因此我们可以通过打开文件后重新设置 fileencoding 来进行文件格式的转换但是这有一个前提就是 vim 可以正确识别出文件的编码格式如果格式识别错误是无法通过更改 fileencoding 来进行转换的。 4. fileencodings 上面提到的文件编码检测是通过设置 fileencodings 实现的注意是复数。fileencodings 是一个逗号分割的列表列表中的元素为编码格式名称。 当我们使用 vim 打开文件时vim 会按顺序使用 fileencodings 中指定的编码尝试解码如果成功则使用该编码格式进行转码由文件编码格式转换为内部编码格式 encoding并设置 fileencoding 为该编码格式如果失败就使用下一种方式尝试解码。 因此我们在设置 fileencodings 的时候一定要将编码严格的、解码不正确更容易失败的格式放在列表的前面将宽松的包容性好的格式放在后面。 例如Latin1 是一种非常宽松的编码方式任何一种编码方式的文本都可以使用它进行解码不会解码失败但是会出现乱码注意解码失败 ! 乱码。因此如果把 latin1 放到了列表的第一个那么打开文件自动识别的 fileencoding 都是 latin1都有可能出现乱码的情况。 以下推荐配置 set fileencodingsucs-bom,utf-8,cp936,gb18030,big5,euc-jp,euc-kr,latin1如果 vim 自动检测的编码格式不正确但是我们知道正确的编码格式可以使用 encencoding_type 来打开文件:e encutf-8 filename。 下面是对该配置的说明 ucs-bom 是一种非常严格的编码非该编码的文件几乎没有可能被误判为 ucs-bom因此放在第一位。 utf-8 也相当严格除了很短的文件外(例如许多人津津乐道的 GBK 编码的“联通”被误判为 UTF-8 编码的经典错误)现实生活中一般文件是几乎不可能被误判的因此放在第二位。 接下来是 cp936 和 gb18030这两种编码相对宽松如果放前面的话会出现大量误判所以就让它们靠后一些。cp936 的编码空间比 gb18030 小所以把 cp936 放在 gb18030 前面。 至于 big5、euc-jp 和 euc-kr它们的严格程度和 cp936 差不多把它们放在后面在编辑这些编码的文件的时候必然出现大量误判但这是 Vim 内置编码探测机制没有办法解决的事。由于中国用户很少有机会编辑这些编码的文件因此还是要把 cp936 和 gb18030 提前以保证这些编码的识别。 最后是 latin1它是一种极其宽松的编码以至于我们不得不把它放在最后一位。不过可惜的是当你碰到一个真的 latin1 编码的文件时绝大部分情况下它没有机会 fall-back 到 latin1往往在前面的编码中就被误判了。不过正如前面所说的中国用户没有太多机会接触这样的文件。
http://www.pierceye.com/news/259598/

相关文章:

  • 私人订制网站有哪些网站建设千套素材
  • 网站建设晋丰北京网站建设及优化
  • 东莞网站制作南城电商网站模板
  • 特色的佛山网站建设深圳勘察设计协会
  • 网站关键词重要性如皋网站制作
  • 河池市网站建设成都网站开发工资
  • 网站建设服务亿企网络十大现货交易平台排名
  • 邯郸大网站英文wordpress转中文乱码
  • 卖汽车的网站怎么做网站建设需要多少钱知乎
  • 苏州模板建站平台自助快速建站
  • 域名查询网ip郑州百度网站优化
  • 泉州网站建设 乐本园东昌府网站制作
  • 电子产品配件采购网站阿里云 虚拟主机 wordpress
  • 网站的电子手册用什么做的百度云搜索引擎官网
  • 网站代码隐蔽代码jsp网站开发pdf
  • 厚街手机网站制作网站开发年终总结
  • 泉州网站建设技术外包网站建设的具体奖罚措施
  • 汕头企业网站推广技巧南宁关键词网站排名
  • 做我的世界背景图的网站阿里云服务器做网站外网访问慢
  • 云南百度智能建站登录wordpress数据库吗
  • 万网买好域名后如何开通网站网站历史记录怎么恢复
  • 游戏租号网站开发网页设计的技术有哪些
  • 工信部网站备案文件合肥网站制作建设
  • 网站架设标准网站域名注册费用
  • 东莞网站制作功能十堰微网站建设价格
  • google关键词分析工具网站建设seo 视频教程
  • 泸州市规划建设局网站网站建设及维护包括范围
  • 网站设计培训成都哪个网站开发软件
  • 四川炜航建筑公司网站新郑网络推广外包
  • 网站建设名头网站项目建设方案