sunylcumar
May 13, 2025
visibility 839
star star star star star
(5 votes)

Helper method to encode query string properly

When using Url.ContentUrl() in Optimizely 12, encodes spaces as + in the query string. If you want to encode the spaces as %20, use the below helper method.

 public static string GetEncodedUrl(string href)
 {
     var decodedHref = System.Web.HttpUtility.UrlDecode(href);
     int questionMarkIndex = decodedHref.IndexOf('?');
     string path = questionMarkIndex >= 0 ? decodedHref.Substring(0, questionMarkIndex) : decodedHref;
     var relativeUrl = UrlResolver.GetUrl(path);
     string query = questionMarkIndex >= 0 ? decodedHref.Substring(questionMarkIndex + 1).Replace("&", "&") : string.Empty;     
     var encodedQuery = !string.IsNullOrEmpty(query) ? $"?{Uri.EscapeUriString(query)}" : query;
     return $"{relativeUrl}{encodedQuery}";
 }
May 13, 2025

Comments

El Magnifico
El Magnifico May 18, 2025 02:14 PM

works well

Manoj Kumawat
Manoj Kumawat May 20, 2025 07:37 AM

Hi, thank you for sharing your insights and contributing to the community.

That said, I wanted to share some constructive feedback. Some of the posts could benefit from a bit more context around the problem being addressed. Providing additional background can help readers better understand the issue and how your solution applies.

Additionally, I've noticed that many posts seem to have the same reviewer, which raises some concerns about objectivity. It's important that content on World Optimizely not only be informative but also genuinely helpful and independently reviewed.

I hope you take this feedback in the spirit it's intended to support continued improvement. Wishing you all the best, and thank you again for contributing.

sunylcumar
sunylcumar May 22, 2025 03:48 PM

Hi Manoj,

First of all I thank you for your suggestion about providing the context of the problem and I agree with you. I will try to explain the problem and solutions in my future posts.

FYI, The other reviewer is my friend for whom I post the solutions here instead of just helping him

Thanks

Sunil

error Please login to comment.
Latest blogs
The Silent Success: When Your Optimizely SaaS CMS Config Push Succeeds with "0" Changes

  Picture this frustratingly common scenario in headless, code-first development with Optimizely SaaS CMS: You’ve defined a brilliant new element,...

Vipin Banka | Jul 13, 2026

Architecting an Enterprise-Grade Development Pipeline in Optimizely SaaS CMS

Most enterprise teams show up to Optimizely SaaS CMS with a clear roadmap for their release pipeline: DEV → QA → Stage → Prod. Four logical...

Vipin Banka | Jul 12, 2026

Bynder DAM Connector for Optimizely SaaS CMS: Improved Metadata Property Synchronization

While working with the Bynder DAM Connector for Optimizely SaaS CMS , one of the key areas I explored was how Bynder asset metadata is synchronized...

Vipin Banka | Jul 11, 2026

Optimizely DXP: Every Supported Culture, One Searchable Page

Quick one for anyone building multi-language sites on Optimizely DXP. I put together a reference tool listing all 806 supported cultures. More...

Adnan Zameer | Jul 10, 2026 |

A day in the life of an Optimizely OMVP: London Meetup 2026

On 2nd July 2026 the Optimizely London Developer Meetup returned to The Lightwell, and the running theme across the evening was less about individu...

Graham Carr | Jul 10, 2026

Optimizely’s Summer ’26 Roadmap: The CMS Is Starting to Look Less Like a Publishing Tool and More Like Marketing Infrastructure

Optimizely’s Summer ’26 Product Roadmap event was not just a list of product updates. At least, that is not the part I found most interesting. The...

Augusto Davalos | Jul 9, 2026