php开发网站编码统一问题
一个良好的网站代码整洁,注释适当是最基本的,也是好的习惯,这可以避免以后的非常乱了自己感觉都乱,一旦重构麻烦就大了耗时耗力,其中网站整个体系的编码是最重要的一个方面,为了网站的稳定性建议php程序,HTML页面,css和js文件,数据库编码全部为utf-8编码,这样保证网站在任何位置被访问都能够正确显示,当然也可以用gb2312或者gbk的编码占用空间小一些,但注意也要编码统一,不一样的要转换。
1、首先HTML文件,文件本身编码是由编辑器所决定的,不管你用实体还是十六进制编码都和页面编码是独立的没有关系,这里编辑器都要设置成纯utf-8和gb2312的,不要带BOM头否则有时候会出现问题,vim、sublime Text、gedit编辑器都是默认纯正的utf-8编码,页面编码确定为utf-8编码之后,我们还要用<meta>标签来设置页面编码,传送至http头,以便浏览器正确解析,代码如下:
<meta charset="utf-8">
这种写法是HTML5标准写法,目前浏览器都支持,不用再像HTML4中写那么长了
2、然后就是php文件,还是文件本身编码要确定,如果php标记是嵌入在HTML中的,那么和1中一样建议在<meta>标签中声明,如果是php类文件,则不用声明编码,保持文件自身编码即可,不嵌入HTML的php脚本每个文件必须声明编码,都在php文件的第一行,用header()函数向http头设置编码,代码如下:
header("Content-Type:text/html; charset=utf-8");
这样就行了
3、CSS和独立的JavaScript编码,这个不用声明,文件本身用utf-8编码写就行,他们默认是utf-8编码特别是JavaScript传递参数时传递的是utf-8编码,如果页面或者数据库是gbk编码,那么要进行转码。
4、数据库编码,建立数据库的时候一般要设置字符集,我们都保持统一设置成utf8系列的就行,一般选择utf8_general_ci这个字符集,然后用php连接数据库并选择数据库之后,一定要设置数据库编码,设置代码如下:
mysql_query('set names utf8');
5、如果是和其他网站交互或者抓取网页与自己网站编码不一致,那么需要进行转换编码以及URL编码解码的操作,字符编码我们可以用iconv()函数或者mb_convert_encoding()函数进行编码转换,如果发送到URL要用urlencode()和urldencode()函数进行编码和解码,重点是弄清楚我们自己网站文件编码、声明头编码、请求参数等等所有编码都是统一的,和其他网站交互只要转换成和他们网站一样的编码就行啦,然后灵活运用这些函数就没问题了,其他的交给浏览器来完成,我们直接向浏览器发送字符或者URL编码都OK,关键是编码一致
经过以上几步编码就统一了,对于整个网站的乱码问题基本上就可以解决了,这个刚开始不容易理解,多练习多思考自然就可以掌握好了
php开发网站编码统一问题的更多相关文章
- c/s与b/s 动态网站与静态网站 (网站编码统一“UTF-8”)
1.c/s和b/s 第一张图是b/s 可以随时随地的浏览 (在服务器增加网页就能增加功能,只要改变网页就能使用户同步更新,共享性也强,开发也简单,在广域网和局域网都能建造b/s结构,然后通过int ...
- 使用.net core基于Razor Pages开发网站一些工作笔记
本文是在实践工作中遇到的一些问题记录,并给出是如何解决的,.net core已经升级到3.0版本了,其实在项目中很早就已经在使用.net core来开发后台接口了,正好有个网站项目,就使用了Razor ...
- 思考:用开发移动app的观念来开发网站
首先祝大家新年快乐.万事如意. 开发网站程序也有一些年头了,从最初的静态HTML+ JS,到后来的WebForm,然后过渡到现在的MVC. 由于最近做一些技术调研,也接触了很多移动开发,iOS和And ...
- Jsoup开发网站客户端第二篇,图片轮播,ScrollView兼容ListView
最近一段日子忙的焦头烂额,代码重构,新项目编码,导致jsoup开发网站客户端也没时间继续下去,只能利用晚上时间去研究了.今天实现美食网首页图片轮播效果,网站效果图跟Android客户端实现如图: 从浏 ...
- PHP开发网站之微信登录、绑定
)))刷新access_token()); ); ); curl_setopt($curlobj, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curlo ...
- 2016年1月25日 《1024伐木累》-小白篇之开发网站,三天!(中篇-2奇怪的IE)-总章节十一
往期回顾: 老王的“先见之明”,解决了困扰耗仔三人的大难题.顺利安装完开发工具,大家投入紧张的工作.航空部领导的突然闯入,IE不兼容,页面错乱,摆在三人面前的形势依然严峻.第一次见这阵仗的耗仔,又会 ...
- 转 如何使用velocity模板引擎开发网站
基于 Java 的网站开发,很多人都采用 JSP 作为前端网页制作的技术,尤其在是国内.这种技术通常有一些问题,我试想一下我们是怎样开发网站的,通常有几种方法: 1:功能确定后,由美工设计网页的UI( ...
- 我在开发网站后得出的asp.Net网站优化总结
原文:我在开发网站后得出的asp.Net网站优化总结 asp.Net网站优化总结: 1.数据库优化: 首先是对查询语句的优化,开发时为了图快可以不考虑,但是后期维护时就必须要优化(比如:你调用代码生成 ...
- Windows8和Windows Phone应用开发主题编码汇总
原文:Windows8和Windows Phone应用开发主题编码汇总 在Windows 8和Windows Phone应用开发中经常需要自定义一些Windows Store应用风格主题,下面列举一些 ...
随机推荐
- jquery indexOf使用方法
当无法确定在某个字符串中是否确实存在一个字符的时候,就可调用 indexOf() 和 lastIndexOf() 方法 indexOf() 和 lastIndexOf() 是js的用法,与jquery ...
- 一个项目中哪些文件是要上传到 git上的,哪些是不必要的
- BZOJ3246 [Ioi2013]Dreaming
Description Serpent(水 蛇)生活的地方有N个水坑,编号为0,...,N - 1,有M条双向小路连接这些水坑.每两个水坑之间至多有一条路径(路径包含一条或多条小路)相互连接,有些水坑 ...
- codevs1064 虫食算
题目描述 Description 所谓虫食算,就是原先的算式中有一部分被虫子啃掉了,需要我们根据剩下的数字来判定被啃掉的字母.来看一个简单的例子: 43#9865#045 + 8468#6 ...
- poj 3463 最短路与次短路&&统计个数
题意:求最短路和比最短路长度多1的次短路的个数 本来想图(有)方(模)便(版)用spfa的,结果妹纸要我看看dijkstra怎么解.... 写了三遍orz Ver1.0:堆优化+邻接表,WA //不能 ...
- Spring监听器配置
使用spring框架时如果同时使用org.springframework.web.util.Log4jConfigListener监听器,那么在web.xml中的监听器的注册顺序为org.spring ...
- java中获取本地文件的编码
import java.util.*; public class ScannerDemo { public static void main(String[] args) { System.out.p ...
- IOS基础之 (十) 内存管理
一 基本原理 1.什么是内存管理 移动设备的内存有限,每个app所能占用的内存是有限制的. 当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收一些不需要使用 ...
- spark对于elasticsearch里的复杂类型支持
IP,直接在case class里用string, 可以考虑先用其它程序生成相关的mapping,然后再去用spark填充数据
- boost库(条件变量)
1相关理念 (1)类名 条件变量和互斥变量都是boost库中被封装的类. (2)条件变量 条件变量是thread库提供的一种等待线程同步的机制,可实现线程间的通信,它必须与互斥量配合使用,等待另一个线 ...