有的新手朋友们对于url编码解码这个概念,或许有点陌生。但是如果这么说,当我们在浏览各大网页时,可能发现有的url里有一些特殊符号比如#号,&号,_号或者汉字等等,那么为了符合url的规范,存在这些符号的url就需要对其进行编码。这样简单的说明大家是否对url编码解码有一点了解了呢?

url编码解码,也可以叫做百分号编码,是统一资源定位(URL)编码方式。

下面我们结合简单的代码示例,为大家介绍PHP实现url中汉字编码和解码的方法。

一、url编码(urlencode)

<?php

$url = urlencode('PHP中文网');//把 PHP中文网 进行编码

$password = md5(123123);

echo "index.php?user=$url&password=$password" ;

在此段代码中,我们使用urlencode函数对“PHP中文网”进行编码操作,并且使用md5加密,最后输出拼接成的url进行测试。

结果如下图:

如图“中文网”这个三个汉字成功的进行了编码,都是以百分号数字字母的组合形式显示。并且原先的密码“123123”也进行了加密。

注:urlencode表示编码 URL 字符串

urlencode返回值表示返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)。

二、url解码(urldecode)

<?php

$url = urlencode('PHP中文网');//把 PHP中文网 进行编码

$password = md5(123123);

echo "index.php?user=$url&password=$password" . '<br>';

$url = urldecode("%E4%B8%AD%E6%96%87%E7%BD%91");  // 把编码还原成 PHP中文网

echo $url;

那么我们再对编码后的汉字进行解码,这里我们主要用到PHP中urldecode函数。

测试结果如下:

如图PHP后面的乱码已经解码成中文。

注:urldecode表示解码已编码的 URL 字符串

urldecode返回值表示返回解码后的字符串。

对于url编码及解码的方法大家主要需要掌握urlencodeurldecode这两个函数。

url编码主要是为了符合url规范或防止SQL注入。

PHP对Url中的汉字进行编码和解码的更多相关文章

  1. 在Java中如何进行BASE64编码和解码

    在Java中如何进行BASE64编码和解码 //在Java中如何进行BASE64编码和解码 package me.xzh.study.sun.misc.BASE64; import sun.misc. ...

  2. javascript中的Base64.UTF8编码与解码详解

    javascript中的Base64.UTF8编码与解码详解 本文给大家介绍的是javascript中的Base64.UTF8编码与解码的函数源码分享以及使用范例,十分实用,推荐给小伙伴们,希望大家能 ...

  3. iOS URL中汉字的编码和解码

    发现NSString类中有内置的方法可以实现.他们分别是: - (NSString *)stringByAddingPercentEscapesUsingEncoding:(NSStringEncod ...

  4. 记录Java中对url中的参数进行编码

    Code: import java.net.URLEncoder; import java.util.HashMap; import java.util.Iterator; import java.u ...

  5. Python2/3的中、英文字符编码与解码输出: UnicodeDecodeError: 'ascii' codec can't decode/encode

    摘要:Python中文虐我千百遍,我待Python如初恋.本文主要介绍在Python2/3交互模式下,通过对中文.英文的处理输出,理解Python的字符编码与解码问题(以点破面). 前言:字符串的编码 ...

  6. 在LoadRunner中进行Base64的编码和解码

    <Base64 Encode/Decode for LoadRunner>这篇文章介绍了如何在LoadRunner中对字符串进行Base64的编码和解码: http://ptfrontli ...

  7. Python 中的 is 和 == 编码和解码

    一   is   与   ==   区别 ==    比较            比较的是值 例如: a = 'alex' b = 'alex' print(a == b) #True a = 10 ...

  8. 在 Java 中如何进行 BASE64 编码和解码

    BASE64 编码是一种常用的字符编码,在很多地方都会用到.JDK 中提供了非常方便的 BASE64Encoder 和 BASE64Decoder,用它们可以非常方便的完成基于 BASE64 的编码和 ...

  9. Python 001- 将URL中的汉字转换为url编码

    很多时候想爬取网页信息,结果出现URL是中文的情况(比如‘耳机'),url的地址编码却是%E8%80%B3%E6%9C%BA,因此需要做一个转换.这里我们就用到了模块urllib. 代码超简单 #-* ...

随机推荐

  1. java.sql.SQLSyntaxErrorException: ORA-00911: 无效字符

    java.sql.SQLSyntaxErrorException: ORA-: 无效字符 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer. ...

  2. ansible指路篇-安装及基本命令使用

    ansible指路篇-安装及基本命令使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.什么是ansible ansible是新出现的自动化运维工具,基于Python开发,集合 ...

  3. GO语言的进阶之路-协程和Channel

    GO语言的进阶之路-协程和Channel 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 看过我之前几篇博客小伙伴可能对Golang语言的语法上了解的差不多了,但是,如果想要你的代码 ...

  4. Python基础【day01】:python介绍发展史(一)

    本节内容 Python介绍 发展史 Python 2 or 3? 一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏 ...

  5. Linux记录-普通用户下执行sudo xxx 找不到命令解决方案

    chmod 777 /etc/sudoers vim /etc/sudoers 1.可以使用 secure_path 指令修改 sudoers 中默认的 PATH为你想要的路径.这个指令指定当用户执行 ...

  6. 绕过/*,web.xml直接访问jsp【转】

    web.xml中如果配置了/* 全匹配,那么不能用servet去响应页面返回了,因为全都被会/*拦截. <servlet> <servlet-name>validateAuth ...

  7. Jupyter 魔术命令(magic commands)

    自动重新加载更改的模块 命令参数如下所示: %autoreload: 自动重载%aimport排除的模块之外的所有模块. %autoreload 0: 禁用自动重载 %autoreload 1: 自动 ...

  8. urllib和urllib2之间的区别

    urllib和urllib2都是接受URL请求的相关模块,但是提供了不同功能. urllib2可以接受一个Request类的实例来设置URL请求的headers,urllib仅可以接受URL.这意味着 ...

  9. [C++]指针与多级指针(图解)

    声明:如需引用或者摘抄本博文源码或者其文章的,请在显著处注明,来源于本博文/作者,以示尊重劳动成果,助力开源精神.也欢迎大家一起探讨,交流,以共同进步- 0.0 演示: /* @author:John ...

  10. ABAP知识点笔记

    1,获取光标所在行 READ TABLE TD_ALV_DATA INTO TH_ALV_DATA INDEX RS_SELFIELD-TABINDEX. 2,获取alv可编辑单元格内容 DATA: ...