PHP与MySQL开发中页面乱码的解决方法

PHP 页面输出乱码解决方法 以前同事问我关于乱码的问题,乱码也分很多种,数据库乱码、页面提取数据乱码,而其他显示正常,phpmyadmin显示也是正常的等等,MySQL对中文的支持程度还是很有限的,尤其是新手,但凡出现乱码问题,就会头大。他的问题如下。标题:mysql设置utf8_unicode_ci字符集php页面输出??乱码的解决方法摘要:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显示MySQL数据时所有汉字都变成了?号乱码问题1:用PHPmyAdmin操作MySQL数据库汉字显示正常,但用PHP网页显 阅读详情

一般来说,乱码的出现有2种原因,首先是由于编码(charset)设置错误,导致浏览器以错误的编码来解析;其次是文件被以错误的编码打开,然后保存,比如一个文本文件原先是GB2312编码的,却以UTF-8编码打开再保存。

 要解决上述乱码问题,首先需要知道开发中哪些环节涉及到了编码:

1、文件编码
  指的是页面文件(.html,.php等)本身是以何种编码来保存的。记事本和Dreamweaver在打开页面时候会自动识别文件编码因而不太会出问题。而ZendStudio却不会自动识别编码,它只会根据首选项的配置固定以某种编码打开文件,如果工作时候一不注意,用错误编码打开文件,做了修改之后一保存,乱码就出现了。

2、页面申明编码
  在HTML代码HEAD里面,可以用<meta http-equiv="Content-Type" content="text/html; charset="XXX" />来告诉浏览器网页采用了什么编码,目前中文网站开发中常用的编码XXX主要是GB2312和UTF-8两种编码。

3、数据库连接编码
  指的是进行数据库操作时候以哪种编码与数据库传输数据,这里需要注意的是不要与数据库本身的编码混淆,比如MySQL内部默认是latin1编码,也就是说Mysql是以latin1编码来存储数据,以其他编码传输给Mysql的数据会被转换成latin1编码。

知道了WEB开发中哪些地方涉及到了编码,也就知道了乱码产生的原因:上述3项编码设置不一致,由于各种编码绝大部分是兼容ASCII的,所以英文符号不会出现,中文就倒霉了。下面是一些常见的错误情况与解决:

1、数据库采用UTF8编码,而页面申明编码是GB2312,这是最常见的产生乱码的原因。

 这时候在PHP脚本里面直接SELECT数据出来的就是乱码,需要在查询前先使用:

 mysql_query("SET NAMES GBK");

 来设定MYSQL连接编码,保证页面申明编码与这里设定的连接编码一致(GBK是GB2312的扩展)。

如果页面是UTF-8编码的话,可以用:
mysql_query("SET NAMES UTF8");

注意是UTF8而不是一般用的UTF-8。

假如页面申明的编码与数据库内部编码一致可以不设定连接编码。

注:事实上MYSQL的数据输入输出比上面讲的更复杂一些.

 MYSQL配置文件my.ini中定义了2个默认编码,分别是
 [client]里的default-character-set
 [mysqld]里的default-character-set

来分别设定默认时候客户端连接和数据库内部所采用的编码。

我们上面指定的编码其实是MYSQL客户端连接服务器时候的命令行参数character_set_client,来告诉MYSQL服务器接受到的客户端数据是什么编码的,而不是采用默认编码。

2、页面申明编码与文件本身编码不一致
  这种情况很少发生,因为如果编码不一致美工做页面时候在浏览器看到的就是乱码了。更多时候是发布以后修改一些小BUG,以错误编码打开页面然后保存导致的。或者是用某些FTP软件直接在线修改文件,比如CuteFTP,由于软件编码配置错误而导致转换错了编码。


3、一些租用虚拟主机的朋友,明明上述3项编码都设置正确了还是有乱码。

 比方说:
 网页是GB2312编码的,IE等浏览器打开却总是识别成UTF-8,网页HEAD里面已经申明是GB2312了,手动修改浏览器编码为GB2312后页面显示正常。

 产生原因是服务器Apache设定了服务器全局的默认编码,
 在httpd.conf里面加了AddDefaultCharset UTF-8。

 这时候服务器会首先发送HTTP头给浏览器,其优先级比页面里申明编码高,自然浏览器就识别错了。

 解决办法有2个
 <1>请管理员在配置文件自己的虚机里加上一条AddDefaultCharset GB2312来覆盖全局配置,
 <2>或者在自己目录的.htaccess里配置。


在HTML页面HEAD区里,<meta http-equiv="Content-Type" content="text/html; charset="XXX">这句一定要写在<title>XXX</title>前面,否则会导致页面一片空白(仅限IE+PHP)。

Web开发中常见UTF-8编码与乱码问题解决方案总结 UTF-8是一种广泛使用的字符编码方式,属于Unicode编码的实现方式之一。它以字节为单位,可以有效地表达所有Unicode字符,并且具有向后兼容ASCII编码的优势。UTF-8的编码长度不固定,从1到4个字节不等,能够适应不同语言和字符集的需求。 阅读详情

相关推荐

嵌入式SPI总线抽象设计:跨平台驱动与分层解耦实践

SPI(串行外设接口)是嵌入式系统中应用最广泛的同步串行通信协议,其核心价值在于高吞吐、低开销与硬件简洁性。其工作原理基于主从架构、全双工/半双工时序及片选(CS)控制,依赖CPOL/CPHA组合定义四种标准模式。在工程实践中,SPI常面临硬件资源受限、多外设共用总线、MCU平台迁移等挑战,导致驱动复用率低、维护成本高。通过结构体+函数指针实现的分层抽象——将物理总线、协议适配与设备驱动解耦,可显著提升代码可移植性与扩展性。该方法天然支持硬件SPI与GPIO模拟SPI双模式切换,并已在STM32等主流MCU

weixin_42601134的博客 60

解决php页面显示mysql乱码的方法

在php页面代码中加入 mysql_query("set names utf8"); 2\每个页面头部加上一句 header("content-Type: text/html; charset=utf-8"); 3\检查所有的编码声明是否正确

434

Android 13 Hotseat定制化修改——001 hotseat布局方向

一.背景由于需求是需要自定义修改Hotseat,所以此篇文章是记录如何自定义修改hotseat的,应该可以覆盖大部分场景,修改点有修改hotseat布局方向,hotseat图标数量,hotseat图标大小,hotseat布局位置,hotseat图标禁止形成文件夹,hotseat图标禁止移动到Launcher...

Java_fenxiang的博客 1101

PHP与MySQL开发中页面乱码的产生与解决

PHP与MySQL开发中页面乱码的产生与解决本文来自: 脚本之家(www.jb51.net) 详细出处参考:http://www.jb51.net/article/13978.htm

aspgreener的专栏 418

CVE-2025-25249漏洞深度解析:FortiOS认证绕过与实战缓解

远程代码执行(RCE)是网络安全中最危险的漏洞类型之一,其核心往往源于认证机制失效或内存安全缺陷。CVE-2025-25249正属于此类高危漏洞——它不依赖用户凭证,也不需要交互触发,而是通过超长HTTP头(如X-Forwarded-For)引发内存越界写入,直接绕过FortiOS和FortiSwitchManager的完整认证流程。该漏洞影响广泛、CVSS评分高达9.8,凸显了嵌入式设备在HTTP协议栈实现中的深层风险。在企业网络中,FortiGate等设备常作为边界守门人,一旦失陷将导致root级控制权

weixin_33694620的博客 524

DIC新手避坑指南:压缩实验中的应变测量常见错误与数据校验技巧

本文为DIC技术新手提供了压缩实验中应变测量的全面避坑指南。文章系统梳理了从试样尺寸录入、散斑质量到数据后处理中应变方向与符号混淆、数据插值对齐等常见错误,并分享了基于MATLAB的自动化数据校验与可视化对比技巧,帮助建立可靠的实验数据分析SOP,确保DIC测量结果的准确性。

weixin_29313423的博客 112

php版乱码怎么办,php页面中文乱码怎么办

株洲 枣庄 许昌 通辽 湖州 新乡 咸阳 松原 连云港 安阳 周口 焦作 赤峰 邢台 郴州 宿迁 赣州 平顶山 桂林 肇庆 曲靖 九江 商丘 汕头 信阳 驻马店 营口 揭阳 龙岩 安庆 日照 遵义 三明 呼伦贝尔 长治 湘潭 德阳 南充 乐山 达州 盘锦 延安 上饶 锦州 宜春 宜宾 张家口 马鞍山 吕梁 抚顺 临汾 渭南 开封 莆田 荆州 黄冈 四平 承德 齐齐哈尔 三门峡 秦皇岛php页面中文...

weixin_36243867的博客 3525

SAP BTP-Cloud foundry 构建并部署JAVA应用程序

本文为 SAP BTP Java 应用程序的简单实例, 我们可以用此实例来熟悉SAP BTP 中的java应用开开发流程.在你完成改示例java应用程序以后, 我们可以直接使用该java应用程序进行后续的开发流程, 或直接构建一个新的JAVA应用程序来支持新的业务开发。

seyafly的博客 803

php中文显示乱码,为什么会出现php中文乱码情况

php中文乱码问题有几种解决方案?乱码是我们在开发可能经常遇见,也是最让人头疼的一个问题了,下面这篇文章主要介绍了在php开发中,可能遇见中文乱码问题的终极解决方案,文中介绍好几个情况下的解决方法,需要的朋友可以参考借鉴,下面来一起看看吧。前言本文主要给大家介绍了关于php中文乱码问题的终极解决方案,分享出来供大家参考学习,在开始之前,我们先来谈谈为什么会出现中文乱码?很多新手朋友学习PHP的时候...

weixin_42347873的博客 437

Ta-Lib源码解析(三):蜡烛图指标 (Candlestick Indicator) #(附Python重构代码和示意图)(补充中)

蜡烛图指标为识别K线形态的指标,笔者认为重点在于定义方式所提供的思路,背后的投资逻辑可以借鉴但不建议直接参考文档的翻译内容和源码逻辑存在不一致的现象,笔者分别列出中文百科中的定义和源码实际逻辑,供大家参考技术分析理论中的一些模糊词,ta-lib中给出了精确的定义源码

量化就是探索生活 3253

逆向实战:Soul聊天协议加密与Frida绕过检测

本文详细解析了Soul聊天协议逆向分析的全过程,重点介绍了如何利用Frida绕过应用的反调试检测机制。通过静态分析定位关键SO库,并编写Frida脚本动态Hook线程创建函数,成功实现对抗。文章还进一步追踪了基于DES算法的加密流程,并探讨了协议数据结构的解析方法,为移动应用安全研究提供了实战参考。

2w3e4r5t6y的博客 1131

php mysql 中文乱码解决办法

php中文字符乱码

c_manito的博客 1990

美军利用MANET技术实现无人作战单元协同作战

本文首先介绍了移动自组织网络 (MANET)以及Wave Relay®波形中继技术,并探讨了波形中继MANET平台在美空军ABMS项目等军事方面的运用情况。

guanyifu9的博客 851

PHP、MySql乱码解决方案

前言 每到课程设计的时候都会累出人命,今年PHP课程设计适做PHP精品课程网站。所踩之坑,接二连三就不一一赘述了。这篇文章的主要目的是说一下怎么解决PHP+MySql乱码,下面开始说了。 HTML页面处理 首先要处理的是单纯的HTML页面,也就是后缀HTML的文件。办法就是增加如下代码: PHP页面处理 在 数据库连接处处理 数据库执行语句mysqli_query($connect,

过路打酱油的博客 397

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

php 中文乱码问题,PHP - 解决中文乱码问题

转载地址:http://blog.youkuaiyun.com/amonest/article/details/6330467PHP+MYSQL做网站开发通常都会碰到浏览器输出中文字符时乱码,这个问题的原因主要是因为HTML内容编码,PHP文件编码和MySQL数据库编码这三者不一致造成的。下面我们以UTF-8为例简述一下如何统一这三者之间的关系。新增一个PHP文件,命名为test_charset.php,将下...

weixin_30404219的博客 417

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

jsp mysql中文乱码,jsp中文乱码 jsp mysql 乱码的解决方法

jsp中文乱码 jsp mysql 乱码的解决方法jsp中文乱码jspmysql乱码要servlet里面支持中文的方法:在dopost或者doget的第一句加上:request.setCharacterEncoding("GB2312");response.setCharacterEncoding("GB2312");jsp乱码问题在jsp里面就把里设置成charset=gb2312jsp页...

weixin_34026997的博客 531

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

MySQL数据库基础-MySQL字符集乱码问题最终解决方案

MySQL配合JSP,PHP开发时,经常出现显示、取数、存储乱码之现象,一直以来,这个问题始终困扰着初学者,甚至是有丰富开发经验的人,有时搞的一头雾水,针对这样的情况,我想找到一个容易且彻底的解决方案,我的开发环境是Apache Tomecat 7 + MySQL Server 5.0 + jdk1.6.0_10 + connector/J 5.1.16,浏览了网上很多关于此环境下出现乱码的情况及

SunBoy晨晨 931

php 查询mysql 乱码,如何做php查询mysql乱码

php查询mysql乱码的解决方案:1。修改PHP页面语言本身的编码类型;2.将MySQL字符集改为“utf8”;3.使用ultraplus中的编码转换功能进行转换。推荐:“PHP视频教程”php读取mysql中文数据中乱码的解决方案1.PHP页面语言本身的编码类型不适合。这时候你直接在剧本里写的中文肯定乱码了,更别说数据库了解决方法:选择& # 39;UTF8 & # 39或者&...

weixin_36039533的博客 216

php录入mysql数据乱码_php写入数据库乱码

对于乱码这个问题php开发者几乎都会有碰到过,我们下面主要是介绍了php mysql数据库连接时乱码解决方法。MYSQL数据库使用UTF-8编码的问题1.用phpmyadmin创建数据库和数据表创建数据库的时候,请将“整理”设置为:“utf8_general_ci”或执行语句:CREATE DATABASE `dbname` DEFAULT CHARACTER SET utf8 COLLATE u...

weixin_39766258的博客 132

关于网页中显示php查询数据库结果乱码问题

[url]http://blog.youkuaiyun.com/yishiyichen/article/details/5775180[/url] A: 可能你会发现经php查询数据库后显示在网页页面上的中文发生乱码,其原因是由于网页默认的编码和mysql的编码不一致造成的,这时你需要在查询或插入语句前使用 [code="php"]mysql_query("SET NAMES utf8");[/code...

pyzheng的专栏 220

MySQL提交事务乱码_解决PHP提交MYSQL数据库中文内容乱码方法

解决PHP提交MYSQL数据库中文内容乱码方法PHP提交MYSQL数据库中文内容乱码问题其实与查询乱码是一样的我们只需要把它进行一个简单的调整即可了,在数据库连接处填写mysql_query("set names 'utf8'");即可解决了.无论是ASP还是PHP程序语言,甚至有其他WEB语言,基础的应用无非就是数据库添加、读取、编辑、删除等需求,再复杂的功能项目都围绕这些进行的。在录入MYSQ...

weixin_32768455的博客 169

php中文乱码

最近无聊做PHP页面连接mysql 就发现中文乱码 最终解决,现记录下,以日后查阅 1.建立数据库的时候,选择utf-8编码 2.建立php 文件的时候选择UTF-8编码 3.防止数据传输中乱码mysql_query('set names utf8'); 4.在静态页面加上<meta http-equiv="Content-Type" content="text/htm...

weixin_30325971的博客 81

php输出汉字乱码?数据库取出汉字是乱码?

1.php页面输出 汉字乱码解决: &lt;?php header("Content-Type:text/html; charset=utf-8");//这一行解决汉字乱码问题 //其他代码 ?&gt; 2.数据库取出汉字乱码解决: 连接后,选择表之前,加上 设置utf-8的命令:MySQL_query("SET NAMES 'utf8'”); $db_link=mysql_connect('...

武当山道士的博客 793
上一篇: 在PHP中使用Memcache优化缓冲性能
下一篇: 网站推广的一些技巧和经验
apache6
博客等级 码龄19年 44粉丝 134原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值