How to Encode-Decode a URL using PowerShell?

Requirement: Encode or Decode a URL in SharePoint Online using PowerShell.

PowerShell to Decode URL:

URL encoding is the process of converting characters in a URL into a format that can be safely transmitted over the internet. Decoding is the reverse process of converting encoded characters back into their original form. In PowerShell, encoding and decoding URLs can be performed using the [System.Uri] class and its methods.

We need decoded URLs in various scenarios in SharePoint. Say we want to pass the file URL as a parameter to some function.

$URL = ""

#Decode URL

#Output: Mgmt v2.pdf

We can also use the UnescapeDataString method from [System.URI] class.

$EncodedURL = ""


Decode SharePoint Online URL using PowerShell:

We can also use the SharePoint Online method to decode a URL: 

#Import PoweShell Module for SharePoint Online
Import-Module Microsoft.Online.SharePoint.PowerShell -DisableNameChecking

#Function to Decode URL
Function Decode-URL([string]$URL)
    Try {
        #Decode the URL
        Return [Microsoft.SharePoint.Client.Utilities.HttpUtility]::UrlKeyValueDecode($URL)
    catch {
        Return "Error Getting De-codedURL: $($_.Exception.Message)"

$URL = ""

#Call the function to decode URL
Decode-URL $URL 

In another situation, I had to calculate the length of the encoded URL in SharePoint and achieved it with the following:

$URL = " Documents/Assets & Inventory.xlsx"

To decode SharePoint URLs, you can also use Online tools like:

sharepoint url decode online

In conclusion, encoding and decoding URLs using PowerShell is a straightforward process that can be performed using the [System.Uri] class and its methods. The EscapeDataString() method can be used to encode URLs, while the UnescapeDataString() method can be used to decode URLs.

Salaudeen Rajack

Salaudeen Rajack - SharePoint Expert with Two decades of SharePoint Experience. Love to Share my knowledge and experience with the SharePoint community, through real-time articles!

Leave a Reply

Your email address will not be published. Required fields are marked *