As is noted on the CharacterSetEncodingsForFFS page there are some issues that come up when doing character conversions.
One->Many, Many->Many, Many->One mappings
In the one to many case, we have some encoding which could represent multiple characters. So, we have some character which is represented by a particular set of bytes, let's just say 03 45 for example. But in the new encoding the same character could be represented as 5A 72, 5A 73, or 34 50, perhaps depending on the diacritic or the like. However, we don't know the diacritic simply from the old encoding alone. In this case we might prompt the user or have a set of mappings that can be changed at the user's preference.
In the many to many case, we have two encoding which have multiple encodings for the same or similar characters. For example, some encodings have multiple representations of a single quote or double quote character. Which encoding is used depends on the usage of the character. This allows some fonts to have different presentations for different semantics. In this case we may have 03 45 and 52 04, which need to be properly mapped to some other byte sequences on the other encoding. Similar to above, we could also use a prompt the user or set of mappings for this case as well.
While we could have many to one mappings, this isn't a problem in the conversion since because you just pick the available one. However, one might want to generate an auxiliary file with the destroyed information or at least notify the user that it is happening.