返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP字符集编码出现乱码怎么解决
  • 576
分享到

PHP字符集编码出现乱码怎么解决

2023-06-17 19:06:52 576人浏览 安东尼
摘要

这篇文章主要讲解了“PHP字符集编码出现乱码怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php字符集编码出现乱码怎么解决”吧!要么页面原始汉字和从数据库里取出的汉字全是乱码;要么原

这篇文章主要讲解了“PHP字符集编码出现乱码怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“php字符集编码出现乱码怎么解决”吧!

要么页面原始汉字和从数据库里取出的汉字全是乱码;要么原始汉字和数据库汉字,一个显示正常了,另一个就变成乱码了。很烦很气人! 问题需要一步一步的解决。在实际操作以下方法之前,需要配置 WEB 服务器,使其与 PHP 集成,最终可以调试 PHP 程序。我们以常见的 GB2312 和 UTF-8 字符集为例来测试和说明。浏览器是 IE7.0。

页面原始汉字乱码的解决

PHP字符集编码的原理我就不说了,网上搜索一下字符串“PHP 乱码”,整框整框的文章供大家阅读。我最关心的是具体怎么做,就可以解决这个实际问题。我最喜欢使用的文本编辑器是 UltraEdit,不仅仅因为它可以进行 16 进制编辑,还因为它支持多编码文档。解决这个问题就需要使用 UltraEdit 的这个功能。

打开中文 windows,用 UltraEdit 创建一个文本文件,手工输入一个 PHP 页面文件,文件内容如下。保存为 test1.php 文件,注意保存时“格式”下拉框选择“默认”- 特别注意这里。

html> < head> < title>页面标题< /title> < META Http-equiv=Content-Type content="text/html; charset=gb2312"> < /head> < Body> 电脑学习网:< br> < /body> < /html>

用 IE 浏览器打开网站的这一页面。可以看到,页面显示正常。在 IE 浏览器的“查看”/“编码”菜单下看到(勾选了“自动选择”),字符编码是 GB2312。

[Firefox 2.0 下显示正常。]

然后,在 UltraEdit 的“文件”菜单下,选“另存为”,格式选择“UTF-8”,文件名为 test2.php。用 IE 浏览器打开这一页面。可以看到,页面显示正常(其实英文字体已经有略微的变化了)。在 IE 浏览器的“查看”/“编码”菜单下看到(勾选了“自动选择”),字符编码是 UTF-8,自动变了!注意 一句并没有修改,但是浏览器却自动辨别出了真实的PHP字符集编码!看来 IE 还是比较聪明的,也说明 IE 自动判别字符集是比 METE 标签中 charset=xxx 的定义优先的。

[Firefox 2.0 下显示出现乱码。]

在该页面首部加语句

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

再次保存该页面文件,“格式”下拉框选择“默认”,文件名为 test3.php。用 IE 打开网站里的该文件,这次看到,除过英文字母,汉字变成乱码了!同时在 IE 浏览器的“查看”/“编码”菜单下看到(勾选了“自动选择”),字符编码是 UTF-8,已经被强制改变了。

出现汉字乱码的原因,是因为原本的 GB2312 编码,被强制以 UTF-8 的编码形式显示,所以乱码出现了。这个时候在浏览器里人为指定 GB2312 编码,页面汉字又显示正常了(真正制作页面时是不能这么做的,非要让浏览者自己选择PHP字符集编码,一个是浏览者可能根本不知道怎么选择编码、选什么编码,再者也显得我们太菜了!)。

[Firefox 2.0 下显示出现乱码。]

在该页面首部加语句

< ?php  header("Content-Type:text/html;charset=GB2312");  ?>

再次保存该页面文件,“格式”下拉框选择“UTF-8”,文件名为 test4.php。用 IE 打开网站里的该文件,奇怪:看到页面汉字显示正常,并不是预想到的乱码?!在 IE 浏览器的“查看”/“编码”菜单下看到(勾选了“自动选择”),PHP字符集编码仍然是 UTF-8,并没有被强制改变了 GB2312 字符集。

这个时候在浏览器里人为指定 GB2312 编码,发现 IE 浏览器并不能人为指定编码。看来 IE 浏览器对 UTF-8 字符集特别关照。无论是在 META 标签指定,还是 PHP 语句指定,都不能让 IE 浏览器显示出汉字乱码。

[Firefox 2.0 下显示出现乱码。]

小结一下: 以上测试主要在 IE7.0 下进行,Web 服务器为 Windows Server 2003 下的 IIS6.0,PHP 版本为 4.4.7。可以看到,IE7.0 为了正确识别字符集做了很多额外的自动处理的工作,以显示其智能和友好。有时太殷勤了反而使我们不知所措。由于汉字乱码问题与不同的浏览器及其不同的版本、Web 服务器、后台脚本和不同的字符集都有点关系,所以问题显得特别复杂。作为 Web 编程人员,主要关心与自己有关的因素就可以了,没必要成为PHP字符集编码的专家。为了兼容目前流行的 IE 和 FF 浏览器,我们可以按照以下简单的方法处理我们的 PHP 代码:

1,页面的真正字符集与 META 标签指定的应该一致;

2,也可以使用 header("Content-Type:text/html;charset=xxx"); 语句指定字符集,但是不能与字符的真正字符集冲突,也不能与 META 标签冲突。(尽管根据测试结果表明,当 header() 和 META 冲突时,header() 比 META 指定的字符集更优先,因为根据 HttpWatch Basic 跟踪显示,header() 指定字符集后,IE 浏览器 Type 会明确的得到字符集指定。但是不能保证其它非主流浏览器也会这样。)

3,PHP字符集编码不能与数据库取回的字符的字符集冲突,否则页面会出现页面本身的汉字和数据库取回的汉字,全部乱码或部分乱码问题。

感谢各位的阅读,以上就是“PHP字符集编码出现乱码怎么解决”的内容了,经过本文的学习后,相信大家对PHP字符集编码出现乱码怎么解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: PHP字符集编码出现乱码怎么解决

本文链接: https://lsjlt.com/news/292326.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP字符集编码出现乱码怎么解决
    这篇文章主要讲解了“PHP字符集编码出现乱码怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP字符集编码出现乱码怎么解决”吧!要么页面原始汉字和从数据库里取出的汉字全是乱码;要么原...
    99+
    2023-06-17
  • php页面字符出现乱码如何解决
    要解决 PHP 页面字符乱码问题,可以尝试以下几种方法:1. 设置字符编码:在 PHP 页面的头部添加以下代码,指定页面的字符编码为...
    99+
    2023-08-19
    php
  • php字符串乱码怎么解决
    本文操作环境:Windows7系统、PHP7.1版、DELL G3电脑php字符串乱码怎么解决?PHP iconv()函数字符编码转换的问题在php中iconv函数库能够完成各种字符集间的转换,是php编程中不可缺少的基础函数库;...
    99+
    2015-07-03
    php 乱码
  • oracle 修改字符集乱码怎么解决
    oracle 修改字符集乱码解决方法:1、找到TNSNAMES.ORA文件在里面找到要连接的数据库的别名,设置环境变量NLS_LANG,打开SQL*Plus,使用以上配置连接到数据库;2、创建一个存放中文字符的表,在存放中文字符的字段中插入...
    99+
    2023-07-10
  • 解决JavaEE开发中字符编码出现乱码的问题
    网上有很多处理字符编码的解决方案,在此,我站着前人的肩膀上作自己的总结。在我看来,出现乱码问题的解决方法无非就是在3个地方进行编码设置:HTML、JSP等前端页面;后台servlet中request和response对象;服务器配置文件。1...
    99+
    2023-05-31
    字符编码 乱码 javaee
  • c++字符串拼接出现乱码怎么解决
    在C++中,字符串拼接可能会导致乱码的问题,主要是由于编码不一致或字符串中包含特殊字符。以下是一些解决乱码问题的方法:1. 确保字符...
    99+
    2023-10-26
    c++
  • php 16进制转字符串出现中文乱码怎么解决
    在使用 PHP 进行 16 进制转字符串操作时,有时会出现中文乱码的问题。这个问题可能出现在很多情况下,比如从数据库中读取数据时,或者是接受用户输入时。本文将介绍一些常见的中文乱码问题,并提供一些解决方法。从数据库中读取数据时出现中文乱码如...
    99+
    2023-05-14
    php
  • golang字符乱码怎么解决
    本篇内容介绍了“golang字符乱码怎么解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是字符乱码字符乱码是指在文本中出现了无法正确解...
    99+
    2023-07-06
  • mysql5数据库导出的字符集中文乱码怎么解决
    本篇内容主要讲解“mysql5数据库导出的字符集中文乱码怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql5数据库导出的字符集中文乱码怎么解决”吧...
    99+
    2024-04-02
  • mysql中字符集乱码如何解决
    本篇文章给大家分享的是有关mysql中字符集乱码如何解决,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。解决mysql字符集乱码的问题 ...
    99+
    2024-04-02
  • MySQL字符集乱码怎么办
    小编给大家分享一下MySQL字符集乱码怎么办,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!前言字符集是一套符号和编码的规则,不论...
    99+
    2024-04-02
  • MySQL字符集编码问题怎么解决
    本文小编为大家详细介绍“MySQL字符集编码问题怎么解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL字符集编码问题怎么解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。方法1:在创建数据库时,指定字...
    99+
    2023-07-06
  • win7中文字出现乱码怎么解决
    本篇内容主要讲解“win7中文字出现乱码怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win7中文字出现乱码怎么解决”吧!解决方法:点击开始按钮,然后点击控制面板。将查看方式设置成类别,...
    99+
    2023-06-28
  • 如何解决php字符串乱码
    本篇内容介绍了“如何解决php字符串乱码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!php字符串乱码的解决办法:1、通过iconv把gb2...
    99+
    2023-06-25
  • 使用php分割字符串时出现乱码如何解决
    今天就跟大家聊聊有关使用php分割字符串时出现乱码如何解决,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。php分割字符串乱码的解决办法:1、通过使用mbstring扩展库的“mb_s...
    99+
    2023-06-14
  • MySQL解决字符集编码问题
    目录前言方法1:在创建数据库时,指定字符集方法2: 更改mysql的配置文件前言 MySQL的默认编码方式是 拉丁文,如果想要设置一些汉字的数据.可能会报错.分享一下我解决这个问题时的方法.1. 在创建数据库时,指定字符...
    99+
    2023-04-12
    MySQL解决字符集编码 字符集编码问题 MySQL字符集
  • eclipse出现乱码怎么解决
    eclipse出现乱码怎么解决?一. 设置工作空间的编码1 编辑器的编码会影响到所有的项目中的字符的显示,可以说是作用最为广泛的设置,每一个项目都会受到这个设置的影响。点击菜单栏中的窗口(Window)— —选项(Preferences)。...
    99+
    2014-07-13
    java教程 eclipse
  • java中的字符出现乱码
    原因:编解码不一致导致字符乱码。首先,我们可以通过调用java.nio.charset.Charset.defaultCharset()获得系统的默认字符集,中文Windows系统都是GBK,所以JVM默认都是以GBK字符集来进行编解码。相...
    99+
    2019-11-18
    java 字符 乱码
  • php为什么会出现乱码?怎么解决?
    PHP是一种非常流行的编程语言,但有时它可能会出现乱码显示的问题。在这篇文章中,我们将探讨php乱码的原因以及如何解决这个问题。第一部分:为什么会出现乱码PHP文件编码问题当PHP文件的编码格式与网页的编码格式不一致时,就会导致乱码的问题。...
    99+
    2023-05-14
    php
  • php 16进制转字符串出现中文乱码如何解决
    本篇内容介绍了“php 16进制转字符串出现中文乱码如何解决”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!从数据库中读取数据时出现中文乱码如...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作