正确设置“UTF-8”编码格式,避免出现乱码问题
原创landlord_china ©著作权
©著作权归作者所有:来自51CTO博客作者landlord_china的原创作品,请联系作者获取转载授权,否则将追究法律责任
正确设置“UTF-8”编码格式,避免出现乱码问题
https://blog.51cto.com/landlord/946023
正确设置“UTF-8”编码格式,避免出现乱码问题
https://blog.51cto.com/landlord/946023
前言:近期由于项目组成员上传错误编码文件至相关服务器导致乱码影响到公司在线业务。然故障虽以解决 ,但与组员沟通发现组员对编码知识了解有限。特着此文,作内部培训使用.
问: 我已经在UltraEdit中保存指定了编码格式为:UTF-8,为什么上传服务器后,还会出现乱码呢?
相信不仅是我们的组员会问到这样的问题,同样也会有不少朋友会有类似的疑问:为什么保存为UTF-8编码的网页问题用IE访问时会在页首自动增加一空白行/”自动”换行呢?
上面的自动两字为什么会加上引号,因为它并非自动,而是人为.
直奔主题:UTF-8实际上包含两种格式:UTF-8 无BOM 类型 与 UTF-8 有BOM 类型
通常开发中用到的IDE编辑器,如Zend Studio , Eclipse 中设置的UTF-8编码均为UTF-8 无BOM类型.
而实际上在UltraEdit编辑器中提供了对UTF-8编码格式两种保存方式供使用者选择.如:
1.UTF-8 – 无BOM
2.UTF-8(有BOM)
BOM实际上是非常有用的前缀。但是在服务器点对点沟通解析或者网页展示中某些情况下却是多余或者说是会带来“麻烦”的。例如会在页头增加如下所示的乱码字符:”“锘?”
或者是导致IE“自动”换行,影响页面布局.
那么BOM到底是什么呢?
Some applications insert a particular combination of bytes at the beginning of a file to indicate that the text contained in the file is Unicode. This combination of bytes is known as a signature or Byte Order Mark (BOM). Some applications - such as a text editor or a browser - will display the BOM as an extra line in the file, others will display unexpected characters, such as .
简单点说:BOM(Byte Order Mark)是用于置于文件头用于标识编码的标记.
事实上在UTF-16 UTF-32中同样分带有BOM及无BOM两种.
因此项目开发中通常推荐大家使用Eclipse ,Zend Studio类似的编辑器进行开发,可以避免混淆编码格式如到底是带BOM正确还是无BOM格式正确。
考虑到Zend Studio 7.0以后的版本菜单功能项布局与Eclipse类似,此处以Eclipse为例,演示如何对工程设置UTF-8编码:
“Project”上右键选择属性”properties” 弹出以下对话框:
在Text file encoding中选择 "UTF-8"即可.
至于编码的发展历史,如ASCII GB2312 GBK GB18030 UTF8 UTF16 UTF32 此处不作阐述,需了解者可BAIDU 或 GOOGLE。
Sky
QQ: 343025026
下一篇:我的友情链接
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Tomcat引起的中文乱码
server.xml配置 1.server.xml配置未注明编码格式 浏览器本身有自己的显示编码格式,tomcat的
编码格式 tomcat xml配置 -
Qt数据库应用22-文件编码格式识别
在做数据导入导出的过程中,如果应用场景多了,相信各位都会遇到一个问题就是文件编码的问题,有些文件是ANSI编码,
qt 文件编码格式 数据 导出数据 数据类型 -
extjs乱码问题
在Ext的使用过程中,一不留心就出现了乱码,包括在客户端提交给服务器的数
字符编码 服务器 编码格式 -
mybatis-plus logging 日志上的中文正常,但是到mysql数据库就乱码
mybatis-plus logging 日志上的中文正常,但是到mysql数据库就乱码
java mysql 数据库 前端页面 解决方法 -
使用response对象的write流往浏览器写中文数据乱码
Eclipse工作区间编码、jsp页面编码、数据库甚至Tomcat编码都是utf-8 使用response对象往浏览器写中文数据还是乱码了。
数据库 eclipse tomcat 浏览器 数据 -
xftp中文乱码
在利用xfp4远程连接linux系统时,出现了乱码 点击文件–>属性 选项,使用utf-8 确定后,刷新连接 乱码不再
远程连接 乱码 linux utf-8 linux系统