I built a WhatsApp link by hand and the message stops at an & or #; why?

Because inside a link those signs are not ordinary characters. An & means 'a new parameter starts here', and a # means 'the part that is sent to the server ends here', so the message stops being read at that point. The fix is to write the message in the link generator, which turns & into %26, # into %23 and % into %25, so the whole message arrives.

Published · 3 min read

What happens in a hand-made link

Say you typed a link yourself for an oud and bakhoor offer and put the message after ?text= just as it is:

https://wa.me/966501234567?text=Oud & Bakhoor 50% off #new

Whatever reads this link first meets unencoded spaces, which a browser may or may not repair. Then it reaches the &, decides the text parameter ended just before it, and treats the rest as some other meaningless parameter. Then comes the %, which it tries to read together with the next two characters as a code. Finally the #, after which everything is dropped before the link is even requested. At best the customer sees 'Oud', at worst garbled text.

The same link from the tool

Type the same message into the message box of the WhatsApp link generator, 26 characters by the tool's count, and you get:

https://wa.me/966501234567?text=Oud%20%26%20Bakhoor%2050%25%20off%20%23new

Look for %26, which is the &, %25 after the 50, which is the %, and %23, which is the #. Each has become part of the text instead of an instruction to the link, so WhatsApp decodes it and shows the whole message exactly as written.

The signs that need care

  • & separates parameters, so it cuts the message. It becomes %26.
  • # starts a part that is not sent with the request, so everything after it is lost. It becomes %23.
  • % starts a code, so it may be read with the next two characters as a different character. It becomes %25.
  • + is read as a space by some systems, so it can vanish from an offer like '2+1'. It becomes %2B.
  • ? and = also mean something in a link's structure, and the tool encodes them inside the message.

You do not need to memorise that list. The tool encodes the whole message the same way browsers encode a value inside a link, so any sign you type arrives as typed.

If a hand-made link is already published

Do not try to patch it by adding codes yourself. Copy the original message text, paste it into the tool's message box with the same number, then replace the old link with the new one everywhere you posted it. If you want to know what the old link actually delivered, paste the part after text= into the URL encoder/decoder and decode it.

Common questions

Does an Arabic message with & have the same problem?

Yes. «عود وبخور & خصم 50% #جديد» gets %26, %25 and %23 from the tool just the same, and without encoding it stops at the & in exactly the same way.

Does the tool change anything in the message text?

No. It only changes how the text is written inside the link, and turns line endings into a single standard line break. What the customer sees is what you typed.