I've played with this, but it's complicated. My chosen approach was this:
1. Operate on an exported playlist in MPL format. This contains all of the library fields and their values and is human readable.
2. I wrote a program which uses a library that knows how to translate UTF-8 characters with accents into their ascii equivalents, so it can produce "safe" output from chosen fields like Artist, Album, and Name.
3. I save these ascii representations of the chosen fields into *NEW* field names like ascii_Album. These get written to a new MPL file along with all of the original fields.
4. This resulting MPL file can be imported into MC, and the new fields will be populated with their ASCII values. This way the existing library data is safe and not modified. Of course you have to create these new library fields first, but that's easy.
5. Finally, once you have the ascii equivalent fields in place, you can use Rename, Move, and Copy to change file or directory names (or both). You could also use expressions to copy these new ascii fields into existing fields if you wanted.
My program is super duper alpha quality. That is, it has undergone VERY little testing. I only played with it for about a few days. It's written in Python, which requires a small installation on windows to make Python work.
Oh, I also wrote some expressions to replace selected characters, but they get REALLY big really fast because you need one replace expression per pair of characters. It's ugly, ugly, ugly. But it works if you only have a small number of special characters you are trying to substitute.
I don't know if this helps you or not, but that's my story.
Brian.