热门标签 | HotTags
当前位置:  开发笔记 > 开发工具 > 正文

关于乱码的种种问题

关于乱码的种种问题大家都知道乱码就是字符集设置问题,所以我们需要清楚关于字符集的几个概念。www.2cto.comGB2312:早期的中文字符集国标,字库很小,不建议使用。GBK:微软为弥补gb2312的不足搞出来的大字...
关于乱码的种种问题
 
大家都知道乱码就是字符集设置问题,所以我们需要清楚关于字符集的几个概念。
  www.2cto.com  
GB2312:早期的中文字符集国标,字库很小,不建议使用。
GBK:微软为弥补gb2312的不足搞出来的大字符集,是gb2312的超集,也是windows默认的字符集,几乎是事实标准。
GB18030:大字符集的国标,比GBK多一些字,但在编码定义上与GBK有少许不同,一般可以认为他们是兼容的。
IBM-eucCN:IBM的中文字符集,AIX默认,与GBK基本兼容,但字要少一点。
UTF8:最全的字符集,用这个任何生僻字都可以处理,推荐使用。
CP936:Code Page 936,windows内中文语言的代码页,早期被映射到gb2312,现在被映射到gbk。
 
下面我们以编辑一个utf8文件为例,说明跟字符集设置相关的因素。
要处理utf8文件,那么在读写的所有环节我们都应该使用utf8,避免程序自动转码出现乱码。
1、设置当前环境字符集为UTF8 
首先使用locale charmap命令检查当前字符集。如果不是utf8则用locale -a列出系统当前可用字符集,找到包含utf8的那一项,例如ZH_CN.UTF-8,然后export LANG=ZH_CN.UTF-8 修改LANG的环境(注意区分大小写),然后用locale charmap命令再次检查,多数情况下这样就ok了。
如果字符集没有改过来或变成了其他的,使用locale命令检查详细的语言设置,这时会发现LC_ 开头的一些环境变量不是utf8,手工unset或export为utf8.
  www.2cto.com  
2、设置终端软件的字符集
a) Putty: window → Translation → Remote character set 改为 UTF-8,也可以保存在session里面。
b) Xshell:Terminal → Translation → Encoding 改为 UTF-8,也可以通过工具栏上的 Encoding 图标快速切换,
    推荐大家使用xshell作为终端。
c) SecureCRT:Terminal → Appearance → character encoding 改为UTF-8.
这时我们已经可以通过cat查看utf8文件或者通过 cat > testfile 写入utf8数据到文件里面。
但如果通过vim编辑,还需要修改vim的环境变量。
 
3、VIM的设置
vim ~/.vimrc ,设置 set fileencodings=utf-8 (指定vim以utf8编码打开文件) 和 set encoding=utf-8 (指定vim以utf8编码输出到终端)
 
这样我们就可以使用vim编辑utf8文件了,其他字符集也与这类似。但是每次修改这些比较麻烦,如果不包含生僻字,我们可以用iconv -f utf8 -t gb18030 filename 将utf8文件转换成gb18030处理。
 

推荐阅读
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 本文介绍了在Mac上配置环境变量,实现Python3的命令行调用的步骤。首先通过官网下载或使用brew安装Python3,并找到安装路径。然后将该路径添加到环境变量中,可以通过编辑.bash_profile文件或执行source命令来实现。配置完成后,即可在命令行中直接调用Python3。 ... [详细]
  • 图片复制到服务器 方向变了_双服务器热备更新配置文件步骤问题及解决方法
    本文介绍了在将图片复制到服务器并进行方向变换的过程中,双服务器热备更新配置文件所出现的问题及解决方法。通过停止所有服务、更新配置、重启服务等操作,可以避免数据中断和操作不规范导致的问题。同时还提到了注意事项,如Avimet版本的差异以及配置文件和批处理文件的存放路径等。通过严格执行切换步骤,可以成功进行更新操作。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 本文详细介绍了Vim编辑器中的三种模式(命令模式、末行模式和编辑模式)以及它们之间的操作区别和切换方法。Vim编辑器凭借其多种命令快捷键和高效率的操作方式,得到了广大厂商和用户的认可。对于想要高效操作文本的用户来说,了解这些模式的使用方法是必不可少的。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 本文介绍了在MacOS系统上安装MySQL的步骤,并详细说明了如何设置MySQL服务的开机启动和如何修改MySQL的密码。通过下载MySQL的macos版本并按照提示一步一步安装,在系统偏好设置中可以找到MySQL的图标进行设置。同时,还介绍了通过终端命令来修改MySQL的密码的具体操作步骤。 ... [详细]
  • 本文介绍了在CentOS 6.4系统中更新源地址的方法,包括备份现有源文件、下载163源、修改文件名、更新列表和系统,并提供了相应的命令。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • Python项目实战10.2:MySQL读写分离性能优化
    本文介绍了在Python项目实战中进行MySQL读写分离的性能优化,包括主从同步的配置和Django实现,以及在两台centos 7系统上安装和配置MySQL的步骤。同时还介绍了创建从数据库的用户和权限的方法。摘要长度为176字。 ... [详细]
  • Annotation的大材小用
    为什么80%的码农都做不了架构师?最近在开发一些通用的excel数据导入的功能,由于涉及到导入的模块很多,所以开发了一个比较通用的e ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • (九)Docker常用安装
    一、总体步骤1、搜索镜像2、拉取镜像3、查看镜像4、启动镜像5、停止镜像6、移除镜像二、安装tomcat1、dockerhub上面查找tomcat镜像 dockersearchto ... [详细]
author-avatar
手机用户2502925313
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有