@redwing, mb api doesn't allow such kind of things, thought i really can do some characters substitutions only in tags. also unicode can contain above 1,000,000 characters and i even don't know the number of punctuation chars in the latest version of unicode. i don't think this can usefully implemented in plugin.
Converting only 68 characters would be more than enough. Look at the linked Picard code from line 107 to 175.
u"\u013F": u"L", # LATIN CAPITAL LETTER L WITH MIDDLE DOT (compat)
u"\u0140": u"l", # LATIN SMALL LETTER L WITH MIDDLE DOT (compat)
u"\u2018": u"'", # LEFT SINGLE QUOTATION MARK (from ‹character-fallback›)
u"\u2019": u"'", # RIGHT SINGLE QUOTATION MARK (from ‹character-fallback›)
u"\u201A": u"'", # SINGLE LOW-9 QUOTATION MARK (from ‹character-fallback›)
u"\u201B": u"'", # SINGLE HIGH-REVERSED-9 QUOTATION MARK (from ‹character-fallback›)
u"\u201C": u"\"", # LEFT DOUBLE QUOTATION MARK (from ‹character-fallback›)
u"\u201D": u"\"", # RIGHT DOUBLE QUOTATION MARK (from ‹character-fallback›)
u"\u201E": u"\"", # DOUBLE LOW-9 QUOTATION MARK (from ‹character-fallback›)
u"\u201F": u"\"", # DOUBLE HIGH-REVERSED-9 QUOTATION MARK (from ‹character-fallback›)
u"\u2032": u"'", # PRIME
u"\u2033": u"\"", # DOUBLE PRIME
u"\u301D": u"\"", # REVERSED DOUBLE PRIME QUOTATION MARK
u"\u301E": u"\"", # DOUBLE PRIME QUOTATION MARK
u"\u00AB": u"<<", # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK (from ‹character-fallback›)
u"\u00BB": u">>", # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK (from ‹character-fallback›)
u"\u2039": u"<", # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
u"\u203A": u">", # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
u"\u00AD": u"", # SOFT HYPHEN (from ‹character-fallback›)
u"\u2010": u"-", # HYPHEN (from ‹character-fallback›)
u"\u2011": u"-", # NON-BREAKING HYPHEN (from ‹character-fallback›)
u"\u2012": u"-", # FIGURE DASH (from ‹character-fallback›)
u"\u2013": u"-", # EN DASH (from ‹character-fallback›)
u"\u2014": u"-", # EM DASH (from ‹character-fallback›)
u"\u2015": u"-", # HORIZONTAL BAR (from ‹character-fallback›)
u"\uFE31": u"|", # PRESENTATION FORM FOR VERTICAL EM DASH (compat)
u"\uFE32": u"|", # PRESENTATION FORM FOR VERTICAL EN DASH (compat)
u"\uFE58": u"-", # SMALL EM DASH (compat)
u"\u2016": u"||", # DOUBLE VERTICAL LINE
u"\u2044": u"/", # FRACTION SLASH (from ‹character-fallback›)
u"\u2045": u"[", # LEFT SQUARE BRACKET WITH QUILL
u"\u2046": u"]", # RIGHT SQUARE BRACKET WITH QUILL
u"\u204E": u"*", # LOW ASTERISK
u"\u3008": u"<", # LEFT ANGLE BRACKET
u"\u3009": u">", # RIGHT ANGLE BRACKET
u"\u300A": u"<<", # LEFT DOUBLE ANGLE BRACKET
u"\u300B": u">>", # RIGHT DOUBLE ANGLE BRACKET
u"\u3014": u"[", # LEFT TORTOISE SHELL BRACKET
u"\u3015": u"]", # RIGHT TORTOISE SHELL BRACKET
u"\u3018": u"[", # LEFT WHITE TORTOISE SHELL BRACKET
u"\u3019": u"]", # RIGHT WHITE TORTOISE SHELL BRACKET
u"\u301A": u"[", # LEFT WHITE SQUARE BRACKET
u"\u301B": u"]", # RIGHT WHITE SQUARE BRACKET
u"\uFE11": u",", # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC COMMA (compat)
u"\uFE12": u".", # PRESENTATION FORM FOR VERTICAL IDEOGRAPHIC FULL STOP (compat)
u"\uFE39": u"[", # PRESENTATION FORM FOR VERTICAL LEFT TORTOISE SHELL BRACKET (compat)
u"\uFE3A": u"]", # PRESENTATION FORM FOR VERTICAL RIGHT TORTOISE SHELL BRACKET (compat)
u"\uFE3D": u"<<", # PRESENTATION FORM FOR VERTICAL LEFT DOUBLE ANGLE BRACKET (compat)
u"\uFE3E": u">>", # PRESENTATION FORM FOR VERTICAL RIGHT DOUBLE ANGLE BRACKET (compat)
u"\uFE3F": u"<", # PRESENTATION FORM FOR VERTICAL LEFT ANGLE BRACKET (compat)
u"\uFE40": u">", # PRESENTATION FORM FOR VERTICAL RIGHT ANGLE BRACKET (compat)
u"\uFE51": u",", # SMALL IDEOGRAPHIC COMMA (compat)
u"\uFE5D": u"[", # SMALL LEFT TORTOISE SHELL BRACKET (compat)
u"\uFE5E": u"]", # SMALL RIGHT TORTOISE SHELL BRACKET (compat)
u"\uFF5F": u"((", # FULLWIDTH LEFT WHITE PARENTHESIS (compat)(from ‹character-fallback›)
u"\uFF60": u"))", # FULLWIDTH RIGHT WHITE PARENTHESIS (compat)(from ‹character-fallback›)
u"\uFF61": u".", # HALFWIDTH IDEOGRAPHIC FULL STOP (compat)
u"\uFF64": u",", # HALFWIDTH IDEOGRAPHIC COMMA (compat)
u"\u2212": u"-", # MINUS SIGN (from ‹character-fallback›)
u"\u2215": u"/", # DIVISION SLASH (from ‹character-fallback›)
u"\u2216": u"\\", # SET MINUS (from ‹character-fallback›)
u"\u2223": u"|", # DIVIDES (from ‹character-fallback›)
u"\u2225": u"||", # PARALLEL TO (from ‹character-fallback›)
u"\u226A": u"<<", # MUCH LESS-THAN
u"\u226B": u">>", # MUCH GREATER-THAN
u"\u2985": u"((", # LEFT WHITE PARENTHESIS
u"\u2986": u"))", # RIGHT WHITE PARENTHESIS
u"\u200B": u"", # Zero Width Space
Some special ASR preset could do the job that detects those characters and converts to ascii code just like the apostrophe preset.