Below Python 3 code replaces non-breaking-space characters with regular spaces for all filenames in the curent directory.
Non-breaking space is a space character that prevents automatic line break.
It looks identical to a normal space character.
By opening an UTF-8 encoded text file in binary editor, one can check that non-breaking space is
0xC2 0xA0 while normal space is
In Unicode, non-breaking space is represented as
U+00A0 and this is
"\xa0" means in the above code.
In HTML, non-breaking space can be inserted with HTML entity
When a user renames a file with a piece of text directly copied from a website,
one can end up with a filename that contains non-breaking spaces.
If a filename contains non-breaking spaces, and the user tries to zip that file, Windows 10 shows an error:
Compressed (zipped) Folders Error ...filename... cannot be compressed because it includes characters that cannot be used in a command folder, such as . You should rename this file or directory.
Since non-breaking spaces are indistinguishable from regular spaces just by looking at them, one cannot identify which spaces are causing the error. He/she has to re-type all the spaces and this is a very time-consuming task if there are many files.