My product link shows %25D9 instead of Arabic letters and opens an error page. How do I get it back to the right form?

%25 is an encoded % sign, so %25D9 means the link was encoded twice. Decode it once and check the result: if it now reads like %D9, that is the normal encoded form browsers understand, and a second decode shows the readable Arabic letters.

Published · 3 min read

How double encoding happens

The Arabic letter م is written in a link as %D9%85. If someone takes that encoded form and encodes it again, each % in it is treated as an ordinary character that needs encoding, so it becomes %25. We tried it in the tool: encoding %D9%85 gave %25D9%2585, with a note that the text looks already encoded and that encoding it again turns every % into %25.

It usually happens when you copy a link from the address bar, already encoded, and paste it into a tool or system that encodes whatever it is given. Or when a link passes through two systems that each encode values. The result is a link that asks the server for a page literally named '%D9%85...' instead of 'م...', which does not exist.

The fix, step by step

Take the link to a page named عطور (perfumes) after it was encoded twice:

https://example.com/%25D8%25B9%25D8%25B7%25D9%2588%25D8%25B1

  1. Open the URL encoder/decoder and choose 'Decode', then 'Full URL'.
  2. Paste the link. The tool gave https://example.com/%D8%B9%D8%B7%D9%88%D8%B1: each %25 turned back into %.
  3. That output is the correct encoded link, and it works as it is. Copy it and use it.
  4. To see the letters, paste the output and decode it once more, which shows https://example.com/عطور.

A single short code behaves the same: decoding %25D9%2585 gave %D9%85, and decoding that gave م.

Why one step at a time?

Because you cannot always tell how many times a link was encoded. It could be twice or three times. If one decode still leaves %25 in the result, decode again, and stop at the first result with no %25 in it. That is the singly encoded version, the one to use anywhere a link is expected. Decoding beyond that can undo codes that were meant to be there, such as %2F inside a value.

Which mode to decode in

  • 'Full URL' for the whole link: it does not decode structural codes like %2F, %3F and %26, so the link's meaning cannot shift during the repair.
  • 'Component' for a single value taken from the link, such as a page name or a parameter value, because it decodes everything.

How to stop it happening again

When a text already contains sequences like %D9 or %20, it is most likely encoded, so do not encode it again. The tool warns you about this before you copy the output. And if you are creating new product page links, choosing a short Latin address with the URL slug generator spares you the layers of encoding from the start.

Common questions

Is a link containing %D9 healthy?

Yes. That is the form in which an Arabic link travels, and the browser shows it in Arabic in the address bar.

How can I tell a link was encoded twice?

%25 followed by two hex characters, such as %25D9 or %2520, is an almost certain sign.

Does the tool repair the link automatically?

No. It decodes once per run and leaves the decision to stop with you.