• Web 编码小结


    .net在web.config中设置网站编码格式   

    <system.web>
        <!--设置编码为中文的GB2312开始-->
        <globalization requestEncoding="gb2312" responseEncoding="gb2312" />
        <!--设置编码为中文的GB2312结束-->
    </system.web>
     
    Web编码小结:

    一个现象引出的分析:
    Web.config 是UTF8 保存的文件,其中定义编码格式

            <globalization requestEncoding="GB2312" responseEncoding="GB2312" fileEncoding="GB2312"/>

    有一个 HTML页面 , 当浏览器IE用 自动编码时,总是打不开. 去掉自动编码,选择简体中文 就可以正常显示!
    该页面用 GB2312 保存. 分析开始部分如下:

    <HTML xmlns:hGui>
        
    <HEAD>
            
    <TITLE>显示消息</TITLE>                
            
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <?import namespace = hGui 
            implementation="../webcontrol/Calender.htc" /> <?import namespace = hGui 
            implementation="../webcontrol/sMenu.htc" />


    IE 中选择自动编码.
    当 meta 标签 在<?import 之前,就没有问题. 在任何一个之后就会出现长时间请求不返回!



    分析有四处定义网页的编码:

    1.  Web.config (Machine.config) 的存储的编码格式.
            用于确定IE用哪种格式来读取该部分内容. 现在已知是用 UTF-8 来读取的.
    2.  Web.config  这里定义了,请求和回发的编码格式.
              I.requestEncoding: 它用来检查每一个发来请求的编码.
              II.responseEncoding: 用于检查发回的响应内容编码.
              III.fileEncoding: 用于检查aspx,asax等文件解析的默认编码.
    3. ASPX 页面的存储的编码格式. 像这样:

    高级保存选项

    4. ASPX 页面指定的编码格式.
           虽然用了 GB2312 来存储.并在 Web.config 里进行了定义. 但在此处, IE 还是用 UTF8 进行读取. 当读到 mata 的 content-type 时,再确定用哪个编码来继续读( 或 重读 ) .  当读到该 Meta 标签之前,出现 与 UTF8 不兼容的字符时, 就会读取错误,读不到 meta 的content-type 了.


    解决方法: 把 meta 标签 的 Content-Type 节 提前到 Title 之后.

    这样的话,就能够让 自动选择编码生效了.这时, IE 解析编码的顺序是 从小到大, 先从页面开始解析,如果解析不到, 就用 Web.config 里的配置.

    最糟糕的问题是: 两个不同的编码页面引用了同一个JS !!! 无法统一的编码集, 是最难搞的.


    另外一个问题:
    VS2003的一个程序,里面用到了 IEWebControl 的树控件. 升级到 VS2008 后. 还需要安装这个控件,安装后.总是失败. 调试发现Js是乱码. 项目设置的编码方式是 Utf-8 . 检查 C:\Inetpub\wwwroot\webctrl_client\1_0 下的 TreeView.htc 编码是 GB2312 .改为 Utf-8 , 问题解决 .

    参考:
    http://www.lihang.name/Blog/post/58.html
    http://jsjlcl.bokee.com/viewdiary.14014246.html


    奇怪的问题:
    1.后来,我又在标题上加了一个Unicode字符.♡ , 保存成 Utf-8 编码. 把 Meta 标签提到 title 之前, 还是不行.
    新建一个新的项目, Copy  Web.config 和 该页面. 设置编码格式. 在新项目里是可以的.

    2.BuidSql 是VS2003的程序.我用 Reflector 反编译后. 得到源码,文件格式是 GB2312 的. 稍加改动在 VS2008 下编译成功. 但是. 添加类文件后,再编译就总是失败了.

  • 相关阅读:
    ReactJS读书笔记一:深入理解JSX
    react经验
    React显示和提交数据
    ReactJS
    PHP中使用memcache
    项目目标文档 ---河北省创新平台年报统计
    系统利益相关者描述案例
    梦断代码 --阅读笔记03
    梦断代码 ---阅读笔记02
    梦断代码---读书笔记01
  • 原文地址:https://www.cnblogs.com/lxshanye/p/2953087.html
Copyright © 2020-2023  润新知