此书是针对英文读者的,所以中文读者使用本书会碰到一个共同的问题-----乱码。那么乱码怎么解决呢?
解决乱码之前,先解决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')没有设置。 按照步骤四,成功解决,乱码消失。 |
|