Wordpress putting %E2%80%8E at the end of my url, howcome?

Solution 1:

If you copy post title from MS Word or WordPad or similar editor. This char is like end of line.

Solution 2:

Step 1) Identify the link, and open the post or page it appears on in the WordPress Dashboard.

Step 2) We need to delete the invisible character causing the issue, so delete the last several characters from the URL, including the quotation mark, so that this

Step 3) Manually retype what was deleted.

Step 4) Click Update then go and check the revised post to confirm the problem is resolved.

https://www.wpkb.com/fix-wordpress-links-%E2%80%8E-end/

Solution 3:

These invisible unicode characters are actually there (unwillingly). You can notice them when moving cursor across them with arrow keys. They use to be added by formatting editors like Word. It's crazy, but Edge adds them even to window title =-O (messing with password managers) or MS Teams Wiki to code snippets (which are meant for preserving space-indented plain text).

It's complicated to get rid of them, because almost all plain text editors and browsers (hence all webapps) today support unicode and even ctrl-shift pasting them preserves them. Even if you try to backspace them, editors usually keep them to preserve rtl/ltr text orientation for you.

Copy the title to some hex editor, remove the characters there and copy it back. Or copy just the ascii part from address bar (if they are URL encoded) and clear the title field by selecting all (ctrl-a).

I use:

  • PSPad (natively)
  • Notepad++ (with HEX-Editor plugin)

Common invisible characters:

Code point UTF-8 hex Name
U+200B e2 80 8b ZERO WIDTH SPACE
U+200E e2 80 8e LEFT-TO-RIGHT MARK
`U+200F e2 80 8f RIGHT-TO-LEFT MARK

https://www.utf8-chartable.de/unicode-utf8-table.pl?start=8192&number=128

Solution 4:

Yes, If you copied it from some editor.

Simple solution is to just copy the content from editor and paste it in 'notepad' text editor as it doesn't support UTF-8 character.

you will easily notice that buggy characted/text like '%E2%80%8E' in your text.

Solution 5:

these are all non-printable ASCII chars

like these are all äÄçÇéÉêöÖÐþúÚ

to remove use this code

function remove_non_ascii(str) {
  
  if ((str===null) || (str===''))
       return false;
 else
   str = str.toString();
  
  return str.replace(/[^\x20-\x7E]/g, '');
}

console.log(remove_non_ascii('äÄçÇéÉêHello-WorldöÖÐþúÚ'));