广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >php获取get参数乱码的解决方法
  • 942
分享到

php获取get参数乱码的解决方法

2023-06-06 12:06:18 942人浏览 泡泡鱼
摘要

本文将为大家详细介绍“PHP获取get参数乱码的解决方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php获取get参数乱码的解决方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一

本文将为大家详细介绍“PHP获取get参数乱码的解决方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php获取get参数乱码的解决方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一起去收获新知识吧。

php有什么用

php是一个嵌套的缩写名称,指的是英文超级文本预处理语言(php:Hypertext Preprocessor)的缩写,它的语法混合了C、Java、Perl以及php自创新的语法,主要用来做网站开发,许多小型网站都用php开发,因为php是开源的,从而使得php经久不衰。

php获取get参数乱码的解决办法:1、通过“$str=iconv("gb2312","utf-8",$str);”方式处理编码;2、通过“mb_convert_encoding($str,"utf-8", "gb2312");”方式处理。

PHP接收GET中文参数乱码深入研究

相信很多PHPer都会遇到这样的问题:在utf-8的页面下面,如果直接访问带有中文参数的地址如test.php?s=测试这样的地址输出参数的值会乱码,在搜索引擎上查询了下相关资料,都只给出了一些解决方案,但是却没有人研究导致这个问题的原因,今天特写此文来深入这个问题产生的原因:

首先我们演示这个问题,测试代码和运行结果如下。

代码:

php获取get参数乱码的解决方法

测试结果:

php获取get参数乱码的解决方法

代码中声明了响应内容的编码为utf-8,显示的内容确实乱码。

在这里请注意var_dump出变量的长度只有4,很显然,两个中文字的长度在utf-8编码下肯定不止4个字节

然后我们再看一下Firefox的访问这个页面url

php获取get参数乱码的解决方法

FireFox会自动将中文url编码,所以我们可以看到测试变成了%B2%E2%CA%D4,很明显,这里一个字是两个字节,是gb2313、gbk等中文编码格式,而不是utf-8编码。()

如果我们把页面的编码切换为gbk,中文参数就会显示正常,参见下图

php获取get参数乱码的解决方法

这时一个有趣的问题就诞生了:像emlog的中文标签这样的参数怎么就没有乱码呢?

多方测试后,我发现了一个小小的区别:

emlog中文参数的链接是在页面上生成的,而上面我们测试则用手直接在地址栏输入的,

如果我们直接输入例如Http://be-evil.org/?tag=原创这样的链接,程序同样会提示找不到标签

测试代码如下:

php获取get参数乱码的解决方法

测试结果,正常显示:


php获取get参数乱码的解决方法

请注意上图中红框标出的url编码,这次测试两个字是由6个字节组成,而不是先前的2个字节,因此表明中文参数已经正确的成为utf-8编码。

那么,是什么导致这个问题的发生呢?

答案是浏览器默认编码  在作怪,我们都用的是中文系统,浏览器默认的编码自然也会设置为本地化,例如我自己电脑上的IE的FireFox的默认编码都是gb系列的,请参看下图:

IE的默认设置:


php获取get参数乱码的解决方法

Firefox的默认设置:


php获取get参数乱码的解决方法

正因为这个设置,让浏览器在请求用户输入的url时会默认把url中的中文以默认的编码格式发送而不是以页面的编码格式发送,这就是为什么页面中带有中文的链接正常而我们手动输入的链接会乱码的原因。同理,如果我们把浏览器的默认编码调整为utf-8,那么输入url中的中文则会按照utf-8编码。

除了上面的之外,还有以下情况会出现这种情况:

如果gbk编码的页面生成的地址链接到utf-8的页面,gbk页面的中文是按照gbk的格式编码传送给下个页面,那么utf-8编码接收后肯定会出现乱码。

IIS的url重写模块,重写后的中文编码也是gbk,如果你的页面是utf-8编码,那么重写参数将会失效。

像这些情况,我们就需要使用php内置的转码函数来处理编码问题了:

方案1:

$str =iconv("gb2312","utf-8",$str);

方案2:

mb_convert_encoding($str,"utf-8", "gb2312");

如果你能读到这里,小编希望你对“php获取get参数乱码的解决方法”这一关键问题有了从实践层面最深刻的体会,具体使用情况还需要大家自己动手实践使用过才能领会,如果想阅读更多相关内容的文章,欢迎关注编程网PHP编程频道!

--结束END--

本文标题: php获取get参数乱码的解决方法

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • php获取get参数乱码的解决方法
    本文将为大家详细介绍“php获取get参数乱码的解决方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php获取get参数乱码的解决方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下,一...
    99+
    2023-06-06
  • php中echo get参数乱码的解决方法
    这篇文章给大家分享的是有关php中echo get参数乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php echo get参数乱码的解决办法:1、使用“iconv("gb231...
    99+
    2023-06-21
  • 探讨php获取url参数乱码的原因和解决方法
    如果你使用 PHP 编写了一个 Web 应用程序,你可能会经历 URL 参数乱码的困扰。出现 URL 参数乱码的原因是,当你尝试从 URL 中获取参数并使用它们时,PHP 可能不会正确地解析该参数。这可能会导致一些意外的行为,并且如果不修复...
    99+
    2023-05-14
  • curl获取结果乱码的解决方法
    做项目的时候,遇到curl获取的结果是乱码,添加header文字编码也没用。找了很多资料,终于解决了,以下是解决办法,记录一下。 发送请求时添加header $header = ['Accept-Encoding: gzip, deflat...
    99+
    2023-08-31
    html php
  • java的get乱码问题解决方法
    java的http请求乱码问题:(推荐:java视频教程)get请求出现乱码:解决方法:在后台获取字符串后对编码进行转化,如常见的编码ISO-8859-1,代码如下String name = request.getParameter("na...
    99+
    2020-11-24
    java 乱码
  • php读取mysql乱码的解决方法
    这篇文章主要介绍php读取mysql乱码的解决方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!php读mysql乱码的解决办法:1、建立数据库表时指定数据库表的字符集;2、设置mysql的字符集;3、设置数据库间传...
    99+
    2023-06-15
  • java参数乱码问题解决方法
    对于Post方式提交的数据,可以使用request.setCharacterEncoding("gb2312");来明确指定获取请求参数时使用编码。但是此种方式只对Post方式提交有效。request.setCharacterEncodin...
    99+
    2014-06-20
    java 乱码
  • PHP中获取Oracle数据乱码如何解决
    PHP中获取Oracle数据乱码如何解决,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。出的问题是:不管转码不转码,页面上从oracle获取的中文始终显示为“?”...
    99+
    2023-06-17
  • ajax提交到servelt获取参数有乱码如何解决
    本篇内容主要讲解“ajax提交到servelt获取参数有乱码如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ajax提交到servelt获取参数有乱码如何...
    99+
    2022-10-19
  • php获取文本乱码如何解决
    本文小编为大家详细介绍“php获取文本乱码如何解决”,内容详细,步骤清晰,细节处理妥当,希望这篇“php获取文本乱码如何解决”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、造成文本乱码的原因编码方式不同:如果文...
    99+
    2023-07-05
  • 如何获取PHP get方法提交的数据
    本篇内容主要讲解“如何获取PHP get方法提交的数据”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何获取PHP get方法提交的数据”吧!在PHP中,可以使用“$_GET”全局变量来获取fo...
    99+
    2023-06-20
  • php url参数中文乱码的原因和解决方法【总结】
    PHP是一种广泛使用的开发语言,可以用来创建Web应用程序和动态网页。但是,使用PHP时会遇到各种问题,其中一个最棘手的问题是URL中的中文参数乱码问题。在本篇文章中,我们将探讨该问题的根本原因以及如何解决它。URL中文参数乱码问题的原因在...
    99+
    2023-05-14
    php
  • php读取word乱码的解决办法
    这篇文章将为大家详细讲解有关php读取word乱码的解决办法,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。打开相应的PHP代码文件。通过com调用word组件,代码如“new COM( &q...
    99+
    2023-06-25
  • php include乱码的解决方法
    这篇“php include乱码的解决方法”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php include乱码的解决方法”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所...
    99+
    2023-06-06
  • php提交参数乱码如何解决
    这篇文章主要介绍“php提交参数乱码如何解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“php提交参数乱码如何解决”文章能帮助大家解决问题。php提交参数乱码的解决办法:1、打开相应的PHP文件;...
    99+
    2023-07-04
  • java读取txt乱码解决方法
    java读取txt文本中如含有中文,可能会出现乱码,解决方案是: 要统一编码,java工程的编码,txt文本编码,java工程中的java文本编码都统一为utf-8; 利用 InputStreamReader(new FileInputSt...
    99+
    2018-02-06
    java
  • php url参数中文乱码的原因和解决方法是什么
    这篇文章主要介绍“php url参数中文乱码的原因和解决方法是什么”,在日常操作中,相信很多人在php url参数中文乱码的原因和解决方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php url参数...
    99+
    2023-07-05
  • php解压zip乱码的解决方法
    这篇文章给大家分享的是有关php解压zip乱码的解决方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。php解压zip乱码的解决办法:首先打开相应的PHP文件;然后用PHP的zip封装协议解压去解决ZipArch...
    99+
    2023-06-14
  • php中htmlentities乱码的解决方法
    小编给大家分享一下php中htmlentities乱码的解决方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!php htmlentities乱码的解决办法:1、...
    99+
    2023-06-22
  • php中foreach乱码的解决方法
    本文将为大家详细介绍“php中foreach乱码的解决方法”,内容步骤清晰详细,细节处理妥当,而小编每天都会更新不同的知识点,希望这篇“php中foreach乱码的解决方法”能够给你意想不到的收获,请大家跟着小编的思路慢慢深入,具体内容如下...
    99+
    2023-06-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作