• 三个字符编码问题的解决


    一、Windows下的CMD.exe:

      如果将命令提示符选项中的“默认代码页”设为“936 (ANSI/OEM - 简体中文GBK)” 则字体选项卡里只有新宋体和点阵字体可选。这样UTF-8(Unicode)编码的中文字符会显示为乱码。

      解决方法:CMD.exe的默认值设置里,“默认代码页”改为“437 (OEM - 美国)” ,此时字体选项卡里可以选择 Lucida Console 和 Consolas 两种字体,任选一种保存设置。以后需要显示UTF-8编码的中文字符时,先运行命令:chcp 65001  改变代码页。也可以在调用 CMD.exe 的快捷方式里把这一命令做为启动参数(cmd.exe /K "chcp 65001")加入。这样设置的缺陷在于,在命令提示符里无法调出汉字输入法了,只能从别处复制中文进来。

     

    二、java 源文件: 

      如果 .java 源文件需要在windows 和linux 下共用,最好保存成utf-8 without BOM 格式,去掉开头的UTF-8标识。

      否则编译时会在文件头的位置报错:“ 非法字符: \65279 ”。

      在Windows下编译时用:javac -encoding utf-8 src_file.java 。

      applet在网页头部加上编码声明:<meta http-equiv = "content-type" content = "text/html; charset=utf-8" />

      三、 Windows 下的 gvim 菜单乱码:

       在 set enc=utf-8 的情况下菜单上的中文会出现乱码。 (为什么非要把 enc 设成 utf-8 ? 因为不这样做的话默认的 encoding=cp936 ,在搭配 set fencs=ucs-bom,utf-8,cp936,gb18030,big5,euc-jp,chinese,latin1  这一句时,不论这几种编码按什么顺序排列,在打开Windows特有的UTF-8 with BOM 编码的文件时都不能正确处理开头的隐藏字符。)

      网上找到的解决方法大多是在 _vimrc 里添加: 

      source $VIMRUNTIME/delmenu.vim
      set langmenu=zh_CN.utf-8
      source $VIMRUNTIME/menu.vim


        可是这样一来就不能加载自定义的菜单项了。由于 gvim 会在加载 _vimrc 之前先根据 Windows 环境中的字符编码(也就是CP936)来选择菜单字体的翻译文件,所以 set langmenu=zh_CN.utf-8  这一句不起作用,还需要清除菜单再重新加载才有效果。

      经测试发现,菜单使用的翻译文件是 $VIMRUNTIME\lang\menu_chinese_gb.936.vim ,这个脚本的编码是 cp936 的,在 enc=utf-8 的环境下当然会导致菜单显示乱码。我的解决办法是把 menu_chinese_gb.936.vim 转成 utf-8 保存,虽然这样做有点不规范,但它的确管用。

  • 相关阅读:
    CF538H Summer Dichotomy
    CF1558F Strange Sort
    CF429E Points and Segments
    CF986F Oppa Funcan Style Remastered
    [JOI Open 2016] 摩天大楼
    [做题笔记] 浅谈笛卡尔树结构的应用
    CF1383C String Transformation 2
    CF1558E Down Below
    weex打包安卓艰苦之路
    IntelliJ IDEA 推荐15款插件
  • 原文地址:https://www.cnblogs.com/shankun/p/three_encoding_problems.html
Copyright © 2020-2023  润新知