Your two examples both show a different kind of process.
In German, you remove the diacritics and retain the information that they encode. And you do it in a way that is broadly consistent with the conventions of German orthography for removing diacritics.
However, in French, you simply remove the diacritics and any information that may have been encoded by them is lost.
You can do the latter for any language with diacritics. Simply, remove them and use the equivalent plain ASCII characters. You will increase the amount of ambiguity in the text but not beyond what native speakers would be able to cope with. So in Czech ěščřžýáí become escrzyai. You end up with things like pani which could be either paní (Mrs) or páni (gentlemen). This is typically not a problem in context and occurs less often than you'd think.
In the early days of email before unicode, speakers of languages with diacritics outside ASCII often resorted to simply writing in the ASCII equivalents (and many still do). There were also many ad hoc systems for preserving the diacritics such as e^s^c^r^z^y'a'i' (or a" for umlauts) but they never really caught on because they made the text harder to read than removing the diacritics altogether.
Also, remember that no all non-ASCII characters in European languages are simply
formed by adding diacritics. For instance, ß in German which would be typically replaced with ss, ø in Danish or ł in Polish.
Algorithms for doing this already exist. See for instance, http://www.siao2.com/2005/02/19/376617.aspx and has been implemented in many contexts in software.