设为首页
加为收藏
联系我们
  • 电子商务
  • 软件网络
  • 看天下
  • 营销财经
  • 关闭导航
  • 网络编程
  • 数据库类
  • 关闭导航
  • 网络编程
  • 社交礼仪
  • 数据库类
  • 人文地理
  • 关闭导航
  • 编程工具
  • 电子书籍
  • 关闭导航
  • 生活休闲
  • 演讲讲座
  • 视频教程
  • 经典影视
  • 关闭导航
  • 您的位置: 首页 > 入门教程 > 网络编程 > PHP

    网站开发中的字符集问题和解决方案

    时间: 2008-10-02  信息来源: 博客园  作者: 编辑整理  点击数:

    内容提示:本文将系统地介绍字符集问题造成的乱码.

            很多人在开发网站开始阶段没有注意到字符集统一的重要性,因此开发的网站不是数据库中存有乱码就是web页面显示为乱码。现以web开发中的字符集为主体讨论在个人和团队web开发中需要注意的问题,和相应的解决方法。

    1. 常见问题的解决

    比如我在网站开发阶段就遇到两个严重的问题:

            我使用的是Zend studio的开发工具,保存代码时也是默认保存的,没有注意到字符集的问题,开始一切正常,但是当我想在页面中添加’©’这个符号的时候,网页不能正常显示。后来发现,zend 默认的保存编码是gb2321编码,而这个编码中不能表示以上那个字符,要显示那个字符有两种方式,一种是使用php中的图形函数,将copyright字符转换为图形显示在网页上。第二种方法是将网站格式完全转化为utf-8编码。我采用的是后者,将全部页面保存为utf-8格式,然后在content-type中将charset=转换为utf-8;

         

    第二个严重的问题是数据库的乱码问题。再将文章存入数据库中后,使用phpmyadmin查看其中数据显示的也全部是乱码,起初没有对这个完全正视起来,因为在php使用其中数据时没有出现异常,在网页中显示正常。但是这本就是个严重的隐患,因此今天想办法解决了,解决方法使用的是很笨的方法,将数据库中的数据读出来,存入表中,然后写一个安装文件(使用php),再连接数据库后,添加一段代码,效果如下:

    $conn=new mysqli(hostname,username,passwd,dbname);

    $conn->query(‘set names /’utf8/’);

            这样在将php的安装文件中的数据写入数据库时就不会出现编码不一致的问题。在phpMyadmin中也能正常显示了。

    字符集问题原理 

     1. Collations
            Collations翻成中文是“校验”,在网页开发的过程中,这个词汇,只在Mysql里使用,主要作用是指导Mysql对字符的比较,比如,ASCII字符集里,Collations规定了a小于b,a等于a,以及a是否等于A之类的。通常,大家基本可以忽略Collations的存在,因为每个字符集都有一个默认的Collations,通常,使用默认的Collations就可以了。以字节为编码单元,没有字节序的问题。UTF-16以两个字节为编码单元,在解释一个UTF-16文本前,首先要弄清楚每个编码单元的字节序。例如收到一个“奎”的Unicode编码是594E,“乙”的Unicode编码是4E59。如果我们收到UTF-16字节流“594E”,那么这是“奎”还是“乙”?

     
     1 2 3  下一页
    Tags: WEB,字符集,乱码 责任编辑:aboutstudy
     
      关于我们 友情链接 网站地图 广告服务 联系我们 管理登陆  
      鄂ICP备07014143号  
      Powered by EmpireCMS 5.0  
      Template designed by 直来直往.
      联系信息: QQ 365931563 Email:jiangtian001@sina.com  
      ©CopyRight 2007-2008, SKDE.CN, Inc. All Rights Reserved