今天搞了一上午,终于把php编码搞懂了,总得来说,php向浏览器,文件,数据库输出数据的时候编码格式都是可以设置的,当他们格式匹配的时候,就不会出现乱码的情况了。
  但是我现在又有问题了,我们的网页文件存在磁盘上应该有他自己的编码格式吧,假如html文件编码是gb2312(当然也可以是其它)。但是当然的在网页中设置了<meta http-equiv="Content-Type" content="text/html; charset=utf-8">的时候,浏览器是用utf-8来解释网页的,这就需要服务器从磁盘中取出html文件,然后理解了文件将在浏览器方使用格式,再把编码格式转换就utf-8,再发给浏览器。
1、web服务器是这样做的吗?
2、我们操作系统上面文件的格式应该是可以自己设置的吗?我们的html在文件系统中一般是什么格式?不过我觉得不同应该软件都有它自己的编码格式,比如记事本就可以让我们选取好几种存储格式进行存储。

解决方案 »

  1.   

    meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    只不过是设置浏览器响应的读取格式
    你的编码还要看你的编辑器
    比如你用notepad++或Editplus都有这项功能 
      

  2.   

    遇到过这种问题,  用notepad++ 工具 选择"格式" ----> 转为utf-8 无bom格式。就可以了。
      

  3.   

    我只是想知道html在系统中存储为gb2312,然后web服务器发给远程浏览器的时候会不会将其改成utf-8的格式,假如<meta http-equiv="Content-Type" content="text/html; charset=utf-8">在html页面中设置了。
      

  4.   

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">是告诉浏览器用utf-8编码进行解析!
    而你的文件实际上是gb2312方式存储的,那么出来的结果肯定是乱码!
      

  5.   

    6楼的意思我不同意,HTML在文件系统中只存储的格式应该默认是一定的吧,但是我们可以让浏览器用utf-8解释,也可以让浏览器用gb2312解释。如果你说的是对的,那么只有一种能,那就是你在HTML指定用什么解释,HTML文件就只能用什么形式存储。我觉得WEB服务器,必须有一种自动格式转换机制,因为WEB服务器在发给浏览器文件时,它自己必先解释过。
      

  6.   


    我刚刚特意做了个实验,,,选择utf-8存储html文件,在里面指定让浏览器用gb2312打开,结果你面的中文完整的输出,一点都不乱,请问做何解释?
      

  7.   


    这个是utf-8和gb2312的关系问题,不是6楼说的问题