精华内容
下载资源
问答
  • Web字符集设置

    2020-07-08 17:15:39
  • Web开发字符集相关知识,对解决乱码等问题有好处
  • Web开发字符集

    2010-11-09 20:29:00
    本文档旨在说明字符集对于web开发必需掌握的常规应用知识。 对于一个页面而言,最核心的三个字符集存在于1,文件编码(Page Encode)2,页面Meta信息(Meta)3,Http Headers里的Content-Type里的字符集指定...

    本文档旨在说明字符集对于web开发必需掌握的常规应用知识。
    对于一个页面而言,最核心的三个字符集存在于1,文件编码(Page Encode)2,页面Meta信息(Meta)3,Http Headers里的Content-Type里的字符集指定(Content-Type)4,页面输出编码(Output Encode)


    他们直接的关系是:

     

    1,  (Meta || Content-Type) === (Output Encode)
    2,  Content-Type > Meta
    3,  (Output Encode) !== || === (Page Encode)


    以下逐一解释这些关系:

    1,(Meta || Content-Type) === (Output Encode)


    这里必需分服务端和客户端两块解释:


    对于服务端而言,服务器会对于每一个需要输出的文件进行编码转换,转换的编码是有服务器厂商提供的可设置的特定值决定(Apache是AddDefaultCharset,ASP.Net是web.config的globalization)。这种转换不会因为输出文件字符集和服务器设定字符集相同而不发生。服务器设定的字符集最终会体现在Http Headers的Content-Type里(除非人为去掉这个值),用以告诉浏览器收到的数据信息可以用什么编码格式显示。

    这里以GB2312和UTF-8举例,如果一个原始文件的编码格式是GB2312,而服务器设定的输出格式是UTF-8,那么他们需要统一转换到Unicode编码,整个过程是:GB2312->Unicode->UTF-8,反之依然。

     

    Meta是指写在页面里的Meta元素指定的字符集信息,作用和Content-Type一样。用以告诉浏览器收到的数据信息以哪种编码格式显示。

     

    这里必需保证的一点是,输出数据的数据格式,必需和通过Content-Type或Meta指定的编码格式一致。不然就会造成所谓的“乱码”情况发生。“乱码”并不是程序的错误,而是浏览器被指定了错误的显示方式显示数据信息的结果。

     

    以上这段文字所描述的情况仅发生在动态内容上,对于静态内容,不会经由动态内容对应编程语言的相关的处理模块处理,所以也就不会发生“转码”这个行为。或者进一步说,对于动态而言,原始文件是什么编码根本就不重要。重要的输出编码和指定编码是不是对应。那么对于静态内容而言,静态内容本身的字符集就决定了输出的格式。至于会不会在Content-Type里指定charset,则由web server决定。


    2,Content-Type > Meta


    如果浏览器同时收到Content-Type和Meta信息,以谁为标准?


    根据目前测试的结果(FireFox3.6.8,Chrome7,IE8)来看,首先会满足Content-Type设定,如果Content-Type里没有指明charset信息,才会以Meta为准。

     

    那如果Content-Type和Meta都不存在呢?

     

    根据文件的存储原则,字符集的信息被存在了文件最前面的几个字节里,而服务器在发送数据的时候,这部分信息是不会发送出去的。这样浏览器在没有收到任何字符集指令的时候就无法“确认”自己究竟该怎么办。于是浏览器会尝试进行以下行为:先缓存一部分字节(缓存多少视不同浏览器而定),然后去“猜测”这部分字节究竟是什么字符集,找一个浏览器认为最为匹配的字符集进行显示,所以任何信息发送给浏览器,浏览器都会将其显示出来,至于显示的结果是不是符合要求,浏览器就不得而知了。

     

    下图解释了不同浏览器缓存字节的大小: 

     Bytes Buffered   
    Configuration FireFox 3.5 Chrome 3.0 IE 8

    Tranfer-Encoding: chunked

     

    1134 1056 300

    Content-Type: text/html
    Tranfer-Encoding: chunked

    204 1056 341

    Content-Type: text/html
    <meta http-equiv="Content-Type" content-type="text/html; charset=utf-8"
    Tranfer-Encoding: chunked

    166 204 218

    Content-Type:text/html; charset=utf-8

    Tranfer-Encoding: chunked

    204 280 300


    那如果没有Content-Type设置,而且Meta的设置位置超过浏览器缓存大小呢?


    这里浏览器会进行这样的处理:首先尝试“猜测”,找到他认为符合的字符集,等页面加载到一定程度并且加载到Meta信息时,浏览器发现字符集有指定,于是浏览器会清空缓存,将数据重新进行转码处理,也就是所谓的全部重新渲染。部分情况下,对于某些资源,浏览器还会重新进行请求。(某些资源是指资源中含有中文)


    3,(Output Encode) !== || === (Page Encode)


    这是因为对于动态资源而言,服务器必然会对资源进行转码,而无视资源本身的编码格式,所以对于任何服务器端存在的动态资源来说,格式并不一定要和服务器输出的格式相同。因为无论怎样,服务端都会进行编码输出。静态资源输出的就是它本身的编码格式。

     

    字符集的积极意义?

     

    对于web开发而言,了解字符集的概念应用可以有助于进行部分的性能优化。这里Google Code给出了他们的4个建议:
    1,  指定Content-Type和Meta信息。
    2,  Meta的定义尽可能靠前部(Head之后的第二行)
    3,  始终确保定义了字符集。
    4,  保证设定的字符集是正确的。

    展开全文
  • web.config中设置字符集

    千次阅读 2010-07-30 21:49:00
    <system.web> ...... <globalization requestEncoding= "gb2312 " responseEncoding= "gb2312 " culture= "zh-CN "  fileEncoding= "gb2312 " /> ...... </system.web>

    <system.web>  
    ......  
    <globalization   requestEncoding= "gb2312 "   responseEncoding= "gb2312 "   culture= "zh-CN "   fileEncoding= "gb2312 "   />  
    ......  
    </system.web>

    展开全文
  • Domino web输出字符集

    2010-12-14 10:33:00
    domino 目录里有个“domino web 引擎的配置---使用UTF-8输出“的选择项,它影响输出到 浏览器上的字符编码,现在很多用的是Ajax的web架构,选择是以确保XML输出不会出错。否则网页会弹出javascript 的错误。

    有时配置中不恰当的小问题会出现一些莫名奇妙的报错。

    domino 目录里有个“domino web 引擎的配置---使用UTF-8输出“的选择项,它影响输出到 浏览器上的字符编码,现在很多用的是Ajax的web架构,选择是以确保XML输出不会出错。否则网页会弹出javascript 的错误。

    展开全文
  • 一、统一jsp文件字符集编码 (1)编码分类: a.设置jsp文件的编码(jsp文件中的pageEncoding属性): jsp -> java b.设置浏览器读取jsp文件的编码(jsp文件中content属性) 一般将上述设置成 一致的编码,推荐...
  • Eclipse设置字符集

    千次阅读 2017-09-15 09:53:42
    Eclipse重新设置workspace Window—>Preferences—>General—>Startup and Shutdown—>Workspaces—>选中Prompt for workspace on startup Eclipse修改jsp的默认编码 Window—>Preferences->Web->JSP Files->...
  • Mybatis连接mysql数据库的时候,设置字符集编码!!! 可以如下配置,Mybatis的配置文件中要这样写: db.propertise jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/mybatis?...
  • 很多时候,一个web站点,选择什么样的字符编码,我们不会太过在意的。象中文网站,我们一般用gb2312,gbk,gb18030,也可以用utf-8。但是,可能我们不知道,选择不同编码,可能因此导致程序本身设计缺陷
  • CentOS7设置中文字符集

    2020-03-27 09:31:32
    文章目录一、字符编码和字符集1、字符编码(character encoding):2、字符集(Character set)3、国际编码(Unicode)二、汉字的编码1、汉字的编码2、汉字的编码选择3、编码的转换三、设置Linux的字符集1、查看当前...
  • Oracle字符集的查看查询和Oracle字符集设置修改
  • 一、字符编码和字符集 1、字符编码(character encoding): 字符编码是一种法则,...字符集是字符的集合,字符是文字和符号的总称,用ASCII编码的字符集称之为ASCII字符集,用GBK编码的字符集称之为GBK字符集。 3、国
  • 1.方式一(使用传统的Spring提供的字符集过滤器) 先写一个Servlet。 package com.songzihao.springboot.servlet; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; ...
  • Java——采用filter统一设置字符集

    千次阅读 2015-11-03 15:58:41
     这里我们就通使用filter同一给每个jsp设置字符集,而字符集信息保存着xml文件中,用的时候在读取,这样既实现代码复用,有提供了可扩展性。 核心代码: filter ;font-size:18px;">package ...
  • Mysql配置文件中设置字符集编码

    千次阅读 2016-06-12 15:13:08
    打开my.ini文件 找到 [mysql] default-character-set=utf8 找到 # The MySQL server [mysqld] ...设置完保存后,重启mysql服务。...对于web程序,一般把所有编码都设置成utf-8就没任何问题的。
  • 采用Filter过滤器设置字符集

    千次阅读 2014-11-30 21:07:29
    Filter过滤器是Servlet2.3规范中新添加的内容,但它不是...在web容器对资源的访问前截获进行相关的处理,还可以在web容器返回响应信息前进行截获。  下面是一个Filter的原理图:  ServletAPI提供了一个Filte
  • Web乱码与字符集的理解 |

    千次阅读 2006-08-26 18:26:00
    问:Web乱码与字符集的理解小生最近学习Servlet和JSP处理中文时常常碰到乱码,所以在网上找了许多有关字符集方面的资料学习,但总觉得一知半懂,所以想得到前辈们指教,以下是我的理解:磁盘上件的存储形式:所有...
  • 10-eclipse修改/设置字符集编码

    千次阅读 2019-05-01 12:21:43
    win系统中,默认编码都是GBK。...1.设置工作空间编码格式 Window--Preferences--General--Workspace下,面板"Text file encoding" 选择UTF-8格式 2.设置文件编码格式 Window--Preferences--Gene...
  • 本议题主要介绍在web安全中利用字符集实现攻击的几种形式,通过给出的几种实际环境中的攻击实例,分析了这些问题产生的本质原因和现在的web应用程序里处理字符集问题时经常出现的问题,从而更深入地了解和修正此类...
  • 字符集设置问题深究

    千次阅读 2015-03-20 21:02:52
    字符集(Charset):是一个系统支持的所有抽象字符的集合。 字符编码(Character Encoding):是一套法则,描述字符集与数字系统之间建立对应关系。给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,...
  • web.xml配置(必须放在struts2配置之前): &lt;!-- 字符编码过滤器配置--&gt; &lt;filter&gt; &lt;filter-name&gt;CharEncodingFilter&lt;/filter-name&gt; &lt;fi...
  • Web下Java语言如何访问不同字符集的Oracle数据.pdf
  • PG 字符集设置

    千次阅读 2015-02-11 11:41:21
    http://www.redgres.com/web/node/8 虽然官方文档有提到编码的问题,但是对于中文讲的比较简单,给中文的PostgreSQL用户带来很多困扰,本文简单简述一下中文环境下PostgreSQL如何正确设置编码。 一、服务器...
  • ORACLE 设置ORACLE客户端字符集

    万次阅读 2018-11-07 14:28:48
    1、字符集的一些基本知识  字符集有很多种,最初的字符集是ASCII,由于ASCII支持的字符很有限,因此随后又出现了很多的编码方案,这些编码方案大部分都是包括了ASCII的。EBCDIC编码是另一个比较基本的编码,它的...
  • 设置ORACLE客户端字符集

    千次阅读 2014-10-27 23:51:52
     字符集有很多种,最初的字符集是ASCII,由于ASCII支持的字符很有限,因此随后又出现了很多的编码方案,这些编码方案大部分都是包括了ASCII的。EBCDIC编码是另一个比较基本的编码,它的部分字符采用了和ASCII不同的...
  • 在eclipse中,很多人在新建html文件或者jsp文件时,默认的字符集都是ios-8859-1,这时候每次都是需要自己手动去修改字符集为utf-8,下面就告诉大家如何设置新建html或者jsp文件时字符集默认为utf-8 一、首先打开...
  • 在eclipse中,很多人在新建html文件或者jsp文件时,默认的字符集都是ios-8859-1,这时候每次都是需要自己手动去修改字符集为utf-8,下面就告诉大家如何设置新建html或者jsp文件时字符集默认为utf-8 一、首先打开...
  • 字符集设置

    千次阅读 2007-07-31 13:33:00
    package com.web;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;public class SetCharacterEncodingFilter extends HttpServlet implements Filter { private Filte
  • 字符集编码

    2013-10-07 00:42:28
    在开发web中各种解决字符集编码的方法和例子,供大家参考

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 361,692
精华内容 144,676
关键字:

web设置字符集