url編碼處理php,url編碼規範

本文目錄一覽:

關於PHP的URL編碼問題

我來解釋吧。。

除了urlencode($a[$0]) 中的$0是無效之外

【【【函數urlencode也用錯了。

URL encode是編碼,而URL decode是解碼,】】】

所以這裡要正確還原就必須用

urldecode($a[0]) 解碼

^^ ——-失之毫釐謬以千里

中文url編碼、base64編碼,PHP解碼中文部分亂碼

如果兩端服務器頁面使用的編碼不一致,就會導致亂碼

如你所說,對方服務器發來的是GBK編碼的內容,如果你本地PHP用的編碼不是GBK就會是亂碼

2種解決方案:

將頁面編碼更改為GBK(可以通過header(‘Content-Type:text/html charset=gbk’);)

將GBK編碼轉為當期頁面編碼(假設當前頁面是utf-8),可以使用iconv(‘gbk’,’utf-8′,$content);其中$content是你經過urldecode、base64解碼後的字符串

關於php url編碼那些事

在發送payload時瀏覽器會自動對一些特殊字符進行url編碼,服務器端會自動進行一次解碼。具體情況如下:

註: 當我們想要發送的命令包含有特殊字符時可以考慮進行倆編碼,如果是滲透linux系統還可以考慮使用base64編碼。

bash -c ‘{echo,base64編碼的命令}|{base64,-d}|{bash,-i}’

php URL編碼轉換問題

?

$a = array(

0 = ‘%C8%FD%BC%B6%20%D3%B0%C6%AC’,

1 = ‘%D7%EE%D0%C2%D3%B0%C6%AC’,

2 = ‘%BE%AD%B5%E4%D3%B0%C6%AC’,

3 = ‘%C8%D5%B1%BE%20%C8%FD%BC%B6%20%D3%B0%C6%AC’,

4 = ‘%D3%B0%C6%AC%CF%C2%D4%D8’);

//方法1

function t($n)

{

return iconv(“gbk”,”utf-8″,$n);

}

$b = array_map(t,$a);

//方法2

$b = array();

for($i=0;$icount($a);$i++)

$b[] = iconv(“gbk”,”utf-8″,$a[$i]);

//數組$b就是你要的結果。

//程序需要php5.0及以上版本的支持。

?

url的編碼和解碼方式

url的在線編碼和解碼工具:

1、基本知識

URLEncode:是指針對網頁url中的中文字符的一種編碼轉化方式,最常見的就是Baidu、 Google等搜索引擎中輸入中文查詢時候,生成經過 Encode過的網頁URL。URLEncode的方式一般有兩種一種是傳統的基於GB2312的Encode(Baidu、Yisou等使用),一種是 基於UTF-8的Encode(Google,Yahoo等使用)。本工具分別實現兩種方式的Encode與Decode。

中文 – GB2312的Encode – ����

中文 – UTF-8的Encode – 中文

Html中的URLEncode:

編碼為GB2312的html文件中,

中文.rar – 瀏覽器自動轉換為 – ����.rar

注意:Firefox對GB2312的Encode的中文URL支持不好,因為它默認是UTF-8編碼發送URL的,但是ftp://協議可以,我試過了.我認為這應該算是Firefox一個bug.

編碼為UTF-8的html文件中,

中文.rar – 瀏覽器自動轉換為 – 中文.rar

PHP中的URLEncode:

//GB2312的Encode

echo urlencode(「中文-_. 「).」\n」; // ����-_.+

echo urldecode(「����-_. 「).」\n」; //中文-_.

echo rawurlencode(「中文-_. 「).」\n」; // ����-_.

echo rawurldecode(「����-_. 「).」\n」; //中文-_.

?

除了 -_. 之外的所有非字母數字字符都將被替換成百分號(%)後跟兩位十六進制數。

urlencode和rawurlencode的區別:

urlencode 將空格則編碼為加號(+)

rawurlencode 將空格則編碼為加號( )

如果要使用UTF-8的Encode,有兩種方法:

一、將文件存為UTF-8文件,直接使用urlencode、rawurlencode即可。

二、使用mb_convert_encoding函數。

$url = 『中文.rar』;

echo urlencode(mb_convert_encoding($url, 『utf-8′, 『gb2312′)).」\n」;

echo rawurlencode(mb_convert_encoding($url, 『utf-8′, 『gb2312′)).」\n」;

//中文.rar

?

實例:

function parseurl($url=」”)

{

$url = rawurlencode(mb_convert_encoding($url, 『gb2312′, 『utf-8′));

$a = array(「:」, 「/」, 「@″);

$b = array(「:」, 「/」, 「@」);

$url = str_replace($a, $b, $url);

return $url;

}

$url=」中文/中文.rar」;

echo parseurl($url);

//����/����.rar

?

JavaScript中的URLEncode:

中文-_. 中文-_.

encodeURI 不對下列字符進行編碼:「:」、「/」、「;」、「?」、「@」等特殊字符。

中文.rar中文.rar

2、示例

;ckn=91142321196129

1)utf-8解碼

�ᘷ���� ������ckn=91142321196129

2)gb2312解碼

�針吠塑� 湞��?ckn=91142321196129

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/184486.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-25 17:24
下一篇 2024-11-25 17:24

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • Python解碼URL

    本文將從以下幾個方面對Python解碼URL進行詳細闡述:URL編碼的作用和原理、Python urllib庫解碼URL的基本用法、Python手動解碼URL的方法、特殊字符在UR…

    編程 2025-04-28
  • Python URL解碼

    在Web開發過程中,URL編碼和解碼是一個很常見的問題。本文將會詳細介紹Python中對URL的解碼方法。 一、URL編碼與URL解碼 URI(Uniform Resource I…

    編程 2025-04-28
  • Python 中文轉URL編碼

    本文將從以下幾個方面詳細闡述Python中實現中文轉URL編碼的方法及注意事項。 一、URL編碼概述 URL編碼也稱為百分號編碼,是一種將URL中的非ASCII字符轉換成「%」後加…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • HTTPs請求URL里的參數會加密嗎?

    是的,HTTPS請求URL里的參數會加密。HTTPS是HTTP協議的加密版本,在傳輸數據時,使用了SSL/TLS協議對傳輸內容進行加密,保證數據在傳輸過程中不會被篡改、竊取。下面我…

    編程 2025-04-27

發表回復

登錄後才能評論