# About htmlEscape: transform https into https%3A%2F%2F

**URL:** https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116
**Category:** support
**Created:** [December 19, 2021, 2:09am UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116 "2021-12-19T02:09:42Z")
**Posts on this page:** 8
**Page:** 1

<div class="post-metadata">

### Author: ![antoinentl](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/antoinentl/32/12914_2.png) [@antoinentl](https://discourse.gohugo.io/u/antoinentl)
#### Post date: [December 19, 2021, 2:09am UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116/1 "2021-12-19T02:09:42Z")

</div>

My question may be naive, but I am looking to turn `https://example.com` into `https%3A%2F%2Fexample.com`, and specifically with this type of variable: `{{ .Permalink }}`. [htmlEscape](https://gohugo.io/functions/htmlescape/) seems to be the solution, but I get no difference between `{{ .Permalink | htmlEscape }}` and `{{ .Permalink }}`. Am I missing something?

---

<div class="post-metadata">

### Author: ![davidsneighbour](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/davidsneighbour/32/24507_2.png) [@davidsneighbour](https://discourse.gohugo.io/u/davidsneighbour)
#### Post date: [December 19, 2021, 3:07am UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116/2 "2021-12-19T03:07:05Z")

</div>

HTML-escape escapes characters not allowed inside of HTML. What you want is URL-escaping, which escapes all characters that have a meaning in URLs. Urlize should do the trick:

> **[urlize](https://gohugo.io/functions/urlize/)**
>
> Takes a string, sanitizes it for usage in URLs, and converts spaces to hyphens.

---

<div class="post-metadata">

### Author: ![jmooring](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/jmooring/32/4214_2.png) [@jmooring](https://discourse.gohugo.io/u/jmooring)
#### Post date: [December 19, 2021, 8:08pm UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116/3 "2021-12-19T20:08:32Z")

</div>

If you need to include a URL in a query string:

```auto
{{ $base := "https://foo.com" }}
{{ $queryString := querify "url" "https://example.com" }}
{{ printf "%s?%s" $base $queryString }}

```

Produces:

```nohighlight
https://foo.com?url=https%3A%2F%2Fexample.com

```

---

<div class="post-metadata">

### Author: ![antoinentl](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/antoinentl/32/12914_2.png) [@antoinentl](https://discourse.gohugo.io/u/antoinentl)
#### Post date: [December 22, 2021, 1:47am UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116/4 "2021-12-22T01:47:58Z")

</div>

Many thanks @davidsneighbour and @jmooring! But I just need to convert `https://example.com` into `https%3A%2F%2Fexample.com`:

- urlize does not work (I have the same result with or without urlize 🤔 …)
- querify it’s interesting but I just need to convert the URL, is there a simpliest way?

---

<div class="post-metadata">

### Author: ![jmooring](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/jmooring/32/4214_2.png) [@jmooring](https://discourse.gohugo.io/u/jmooring)
#### Post date: [December 22, 2021, 1:55am UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116/5 "2021-12-22T01:55:32Z")

</div>

No functions that I am aware of. Options:

```auto
{{ $url := "https://example.com" }}
{{ $urlEncoded := index (split (querify "" $url) "=" ) 1 }}

{{/* or */}}

{{ $url := "https://example.com" }}
{{ $urlEncoded := replace $url ":" "%3A" -}}
{{ $urlEncoded = replace $urlEncoded "/" "%2F" -}}

```

---

<div class="post-metadata">

### Author: ![jmooring](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/jmooring/32/4214_2.png) [@jmooring](https://discourse.gohugo.io/u/jmooring)
#### Post date: [January 16, 2022, 3:49pm UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116/6 "2022-01-16T15:49:10Z")

</div>

@schnerring identified an [undocumented](https://github.com/gohugoio/hugoDocs/issues/1627) function:

```auto
{{ urlquery "https://example.com" }} --> https%3A%2F%2Fexample.com

```

The function takes one or more args, producing a single string.

```auto
{{ urlquery "https:/" "/example.com" }} --> https%3A%2F%2Fexample.com

```

---

<div class="post-metadata">

### Author: ![antoinentl](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/antoinentl/32/12914_2.png) [@antoinentl](https://discourse.gohugo.io/u/antoinentl)
#### Post date: [January 17, 2022, 1:40am UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116/7 "2022-01-17T01:40:54Z")

</div>

Interesting function, thank you for following up on my questions!

---

<div class="post-metadata">

### Author: ![system](https://yyz2.discourse-cdn.com/flex036/user_avatar/discourse.gohugo.io/system/32/1_2.png) [@system](https://discourse.gohugo.io/u/system)
#### Post date: [January 19, 2022, 1:41am UTC](https://discourse.gohugo.io/t/about-htmlescape-transform-https-into-https-3a-2f-2f/36116/8 "2022-01-19T01:41:33Z")

</div>

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.
