分享

PHP服务器乱码

 Vinci_D 2015-03-12
此书是针对英文读者的,所以中文读者使用本书会碰到一个共同的问题-----乱码。那么乱码怎么解决呢?
   解决乱码之前,先解决mysqli兼容的问题。phpnow 中不修改是无法兼容mysqli函数的。而本书所有mysql函数皆调用mysqli。
   如果您是使用phpnow 平台,那么请您在phpnow的文件中搜索php-apache2handler.ini 文件。而如果您是其他平台不兼容mysqli,请搜索类似的".ini"文件。在相应的“.ini”文件中搜索 “extension=php_mysqli.dll”,您发现了吗:
  “;extension=php_ming.dll
  ;extension=php_msql.dll
  ;extension=php_mssql.dll
  extension=php_mysql.dll
  ;extension=php_mysqli.dll(MD 此行前边有";",也难怪无法调用。消灭此行“;”,mysqli成功调用。)
  ;extension=php_oci8.dll
  ;extension=php_openssl.dll”
  
  下面解决乱码问题。乱码问题归根到底是php以及mysql数据库中文编码不支持的问题。(以下解决方案有网上的引用,是本人应用成功后总结)
   解决方案:统一编码为 UTF-8。
  1.网页在head标签后,title标签前加入一行:
  <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> 顺序不能错,一定要在显示的标题有可能是乱码!
  
  2.html文件编码问题:
  
  点击编辑器的菜单:“文件”->“另存为”,可以看到当前文件的编码,确保文件编码为:UTF-8,
  如果是ANSI,需要将编码改成:UTF-8。 顺序不能错,一定要在显示的标题有可能是乱码!
  
  3.数据库创建统一编码
   用phpmyadmin创建数据库和数据表
  创建数据库的时候,请将“整理”设置为:“utf8_general_ci”
  或执行语句:
  
  CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  创建数据表的时候:如果是该字段是存放中文的话,则需要将“整理”设置为:“utf8_general_ci”,
  
  相应的SQL语句,例如:
  
  CREATE TABLE `test` (
  `id` INT NOT NULL ,
  `name` VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
  PRIMARY KEY ( `id` )
  ) ENGINE = MYISAM ; //注意 varchar的“utf8_general_ci”设置。
  
  
   [网上说这样也管:
  CREATE TABLE 表名
  (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
  text_test TEXT,date_test DATE NOT NULL
  )DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;
  ]
  
  4Mysql 连接操作:
  $dbc= mysqli_connect('localhost','用户名','密码','数据库名');
  mysqli_set_charset($dbc,'utf8'); //设置字符集,这样可以让用户使用中文字符
  
   经本人测试,xampp的乱码无法解决一般出在mysqli_set_charset($dbc,'utf8')没有设置。
  
   按照步骤四,成功解决,乱码消失。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多