Remove accents and special characters from names

Practical guide · Windows 10 and Windows 11

You try to upload Annual report (versión 2) — Spain.pdf and the form rejects it without saying why. Or it uploads, and when you download it back from the server it is called Annual%20report%20(versi%C3%B3n.pdf. Or you move it to a Mac and the accented letter arrives split in two. All of that comes from the same place: file names with accents, spaces and symbols do not travel well.

What Windows forbids

Windows accepts none of these nine characters in a file name:

\ / : * ? " < > |

It also refuses to let a name end in a space or a dot, and there is a list of reserved names left over from the MS-DOS era that still throw errors today: CON, PRN, AUX, NUL, COM1 through COM9 and LPT1 through LPT9. A file called aux.txt simply cannot be created.

What Windows allows but will cause you grief

Accented letters. Windows accepts them, but outside Windows things get complicated. An older web server, a management system written in the nineties or a badly written script can turn versión into versión.

There is also a subtler problem almost nobody knows about: an accented letter can be written two different ways that look identical on screen. Either as a single character, or as the plain letter followed by an invisible combining accent. Windows uses the first and macOS the second, which is why a file copied from a Mac sometimes refuses to show up when you search for it by name on Windows.

Spaces. In a web address they become %20, and on the command line they force you into quotation marks. Not fatal, but constant friction.

Em dashes and smart quotes. The — and the “curly quotes” Word inserts automatically are not the same characters as the hyphen and quotes on your keyboard. They are the usual suspects when something fails and the name looks perfectly ordinary.

1. By hand, if there are few

Select, F2, type. For three files it is the fastest thing going and you need read no further.

2. PowerShell, to strip accents in one pass

This walks the folder, decomposes each accented letter and keeps only the base letter:

Get-ChildItem | Rename-Item -NewName { [Text.Encoding]::ASCII.GetString([Text.Encoding]::GetEncoding(1251).GetBytes($_.Name)) }

What it cannot do: it is fragile. Depending on your regional settings it can leave question marks where letters were, and some characters simply have no decomposition, so it leaves them alone. No preview, no undo.

The detail nearly every solution skips: stripping accents works by decomposing a letter into "base letter + accent" and throwing the accent away. With á, é, ñ or ü that is fine. But ß, ø, ł, æ, þ and đ are not accented letters, they are letters in their own right, and that method either leaves them untouched or deletes them. If you work with German, Nordic or Polish files, that is exactly where it will fail you.

3. In batches, seeing the result first

TandaFiles has a clean up characters rule built for this:

  1. Open folder and pick the folder.
  2. Add the Clean up characters rule.
  3. Tick strip accents and special letters, and if you want, spaces to hyphens and remove extra spaces.
  4. In the characters-to-remove box, type whatever else is in the way, for example ()[].

It turns ß into ss, æ into ae, ø into o, ł into l and so on for the other letters that are not simply accented vowels, rather than letting them through. The table shows how every name will end up as you configure it, flags in red if two files would end up with the same name, and there is an undo button.

What a name should look like

If you want a name that works everywhere — on Windows, on a Mac, on a Linux server and inside a web address — stick to this:

So Annual report (versión 2) — Spain.pdf becomes 2026-06-14_annual-report-v2-spain.pdf. Less pleasant to read, but it will not fail on you anywhere.

Try TandaFiles free in your browser