网站开发笔记【二】php的乱码问题解决

php乱码问题主要是由于中文的编码问题导致的,中文的编码一般用到的以gbk,utf8居多。

为了使中文编码不再乱码,解决方案如下:

1.在php中加上header("Content-type: text/html; charset=utf-8");这句话一定要在php的<?php 标记之后的第一句话开始。

<?php
header("Content-type: text/html; charset=utf-8");

//added code 

?>

2.设置数据库连接为utf-8编码,在操作数据库之前,这样声明

<?php
header("Content-type: text/html; charset=utf-8");

//code

mysql_query("set names ‘utf8‘");

//数据库操作
....
?>

3.数据库的编码设置为utf-8(以mysql为例子)

查询字符集的方法:

我们在更改数据库字符集的时候这样做:1.拥有数据库配置文件的修改权限(可以修改my.ini):

如:在my.ini文件中找到下面的配置:

  default-character-set = utf8
      character_set_server =  utf8

2.没有修改my.ini的配置权限(一般是在云主机上)

可以在phpAdmin中这样设置:

或者是执行sql命令:

  mysql> SET character_set_client = utf8 ;
     mysql> SET character_set_connection = utf8 ;
     mysql> SET character_set_database = utf8 ;
     mysql> SET character_set_results = utf8 ;
     mysql> SET character_set_server = utf8 ;
     mysql> SET collation_connection = utf8 ;
     mysql> SET collation_database = utf8 ;
     mysql> SET collation_server = utf8 ;

最后,如果在进行上述的操作,即:数据库的编码是utf8,数据表的编码是utf8,数据表字段的编码也是utf8,

这样仍然出现乱码的原因可能是在数据库连接的时候出现问题(数据库连接可能需要外部传入的参数,这个参数的编码也很重要)

这样的话我们要这样设置:

SET NAMES ‘utf8‘;

及在数据库执行操作之前加上这么一句:它的作用等同于:

时间: 2024-08-13 17:29:20

网站开发笔记【二】php的乱码问题解决的相关文章

ASP.NET MVC5 网站开发实践(二) Member区域 - 添加文章

转自:http://www.cnblogs.com/mzwhj/p/3592895.html 上次把架构做好了,这次做添加文章.添加文章涉及附件的上传管理及富文本编辑器的使用,早添加文章时一并实现. 要点: 富文本编辑器采用KindEditor.功能很强大,国人开发,LGPL开源,自己人的好东西没有理由不支持. 附件的上传同样基于KindEditor实现,可以上传图片,flash,影音,文件等. 目录 ASP.NET MVC5 网站开发实践 - 概述 ASP.NET MVC5 网站开发实践(一)

PHP微信公众开发笔记(二)

PHP微信公众开发笔记系列 日期:2014.9.1 需求分析: 在成功的开启了微信开发者服务之后,我们便需要开始做响应用户操作的功能了.其实做微信公众平台,当初的目的我就是想做成一个服务平台,因为刚大学毕业,同学各奔东西.有的时候可能我们会到一个陌生的城市去,那时可能就会想啊,这个城市有班上的同学在么?这时掏出手机,点开服务号输入这个城市名,就会返回一串信息,假如有同学在这个城市,就会列出联系信息之类的.当然也许会说,既然是熟悉的同学,那么肯定会知道联系方式之类的,还需要这样多此一举么.而我的考

离线谷歌地图API的开发笔记(二)

一.地图引擎介绍 离线地图引擎运行在WINDOWS平台上,底层由Visual c++语言开发,编译为OCX插件方式.占用文件少,便于二次开发的快速安装部署. 具有专业地图的基础操作功能:地图放大.缩小.移动.测量距离,测量面积. 支持以下矢量操作:点.线.面.透明矩形.透明圆形.箭头等添加/编辑/删除操作. 软件支持操作系统:Windows98/Me/2000/XP/win7/win8/win10 支持VB,VC,Delphi,C#等开发工具的二次开发, 从此可以专注于您的专业领域,不再为地图开

RBL开发笔记二

 17:13:55 2014-08-25 有以下几个点:  第一 :怎么在预处理阶段能够做到识别某个宏是否给定义了  这里就定义了一个SystemConfig.h 专门做这个事情  当然是需要makefile来配合的 http://blog.csdn.net/chaoqunz/article/details/6033663  这篇博文已经提到相应的方法  在makefile里加一个-D 参数  这相当于就是Makefile一个补充参数吧. 第2: 因为我的计划写这个RBL的时候  可以通过配置文

Fast.Framework开发笔记二:VisualStudio解决方案的搭建

VisualSutio项目结构图: 对!你没有看错,本篇说的就是解决方案的搭建.是不是觉得没一点技术含量啊?,我们先来看下要搭建一个什么样的解决方案吧? 第一.软件架构师能对框架代码进行封装(Framework.Applications). 第二.软件开发工程师以DLL形式调用所有框架代码,并在相应的项目中可以进行定制化开发. 解决方案说明: Applications (框架的业务代码将会放在这里面,实际路径在Fast.ERP.Web之下,是为了开发项目在访问框架里面的View页面) |----

MVC5 网站开发之二 创建项目

昨天对项目的思路大致理了一下,今天先把解决方案建立起来.整个解决包含Ninesky.Web.Ninesky.Core,Ninesky.DataLibrary等3个项目.Ninesky.Web是web应用程序,Ninesky.Core和Ninesky.DataLibrary是类库. 因为代码要发布到codeplex.com上,所以在codeplex.com上注册一个项目. 一.连接到codeplex.com的TFS服务器 1.文件->新建->团队项目,弹出连接到团队项目集合对话框. 2.点击服务

Android TV 开发笔记二:创建第一个Android TV App

一:创建 New Project 1. 2. 3. 4. 创建成果后发现已经帮你创建好了一些demo页面,并且数据都已经绑定好了 二:解决错误 1.创建成功后,build发现报错了,如下: 这个错误是因为版本问题导致的 解决方法,将版本号修改为以下的: 接着又会报错: 作为一个程序员,这点小错误相信难不倒你,自己解决吧,是HeaderItem用的构造函数不对导致的 至此终于得到了一个可以运行的AndroidTV Demo

服务端开发笔记二:基于pomelo的分布式手游架构

经过了一个周的时间,新项目的基本结构已经大体确定,拿来给大家分享. 一 基础概念 在说明手游服务器架构之前,一下几点须知. 1 我们的服务器集群分为前端服务器和后端服务器. 前端服务器:负责接收前端请求,实际上只有两个gate和connector: 后端服务器:负责后端服务器相互调用,如auth,area: 虽然在我们写路由的时间直接写的是area中handler下文件中的方法, 但是这是通过connector间接调用的,不要认为area是前端服务器. 2 对于每个单独的服务器,一般由三个可选的

记一次vue 异步请求微信二进制二维码 乱码 问题解决然后渲染

后端压力大,前端分忧. /*用微信小程序token拿二维码*/ async fetchMINIQRcode({commit,state},params){ var instance = axios.create({ responseType: 'blob', //返回数据的格式,可选值为arraybuffer,blob,document,json,text,stream,默认值为json }) let data = await instance.post('https://api.weixin.