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应用风格主题,下面列举一些 ...
随机推荐
- 学习笔记--博弈组合-SG函数
fye学姐的测试唯一的水题.... SG函数是一种游戏图每个节点的评估函数 具体定义为: mex(minimal excludant)是定义在整数集合上的操作.它的自变量是任意整数集合,函数值是不属于 ...
- BZOJ-1192 鬼谷子的钱袋 2^n有关数论
1192: [HNOI2006]鬼谷子的钱袋 Time Limit: 10 Sec Memory Limit: 162 MB Submit: 2473 Solved: 1806 [Submit][St ...
- PostConstruct
Spring AOP注解通过@Autowired,@Resource,@Qualifier,@PostConstruct,@PreDestroy注入属性的配置文件详解 1.6. @PostConstr ...
- bzoj3037 创世纪
两种解法: 一.树状DP /*by SilverN*/ #include<iostream> #include<algorithm> #include<cstring&g ...
- FFTW中文参考
据说FFTW(Fastest Fourier Transform in the West)是世界上最快的FFT.为了详细了解FFTW以及为编程方便,特将用户手册看了一下,并结合手册制作了以下FFTW中 ...
- photon mapping阶段性总结
PM算法看了这么久,也该是到了总结的时候了.自己实现的是PPPM(Probabilistic progressive photon mapping)的一个简化形式.之所以是简化形式是由于我的光子搜集时 ...
- iconv命令详解
功能] 对于给定文件把它的内容从一种编码转换成另一种编码. [描述] -f encoding :把字符从encoding编码开始转换. -t encoding :把字符转换到encoding编码. ...
- Java中Comparable和Comparator实现对象比较
1.通过Comparable实现排序 package Comparable; import java.util.Arrays; public class ComparableUser implemen ...
- .net 的一个分词系统(jieba中文分词的.NET版本:jieba.NET)
简介 平时经常用Python写些小程序.在做文本分析相关的事情时免不了进行中文分词,于是就遇到了用Python实现的结巴中文分词.jieba使用起来非常简单,同时分词的结果也令人印象深刻,有兴趣的可以 ...
- Kik CEO Ted Livingston发博称要成为西方的微信?
加拿大手机聊天应用Kik是一款手机通信录的社交软件,和Snapchat.微信相似,上个月刚拿到3830万美元融资.近日,Kik CEO Ted Livingston在medium博客上发表了the r ...