You have two problems here:
- The databases have different charactersets
- Solaris and Oracle Linux have different endianness (big and little respectively)
Cross platform tablespace migration is possible... but you have to be on 10g to do this!
https://oracle-base.com/articles/10g/rman-enhancements-10g#cross_platform_tablespace_conversion So as you're going from 9i -> 12c, export/import is the way to go.
When it comes to the characterset conversion things start to get interesting...
WE8MSWIN1252 is a superset of WE8DEC. But it's not a strict superset! Some characters have different codes.
It's also possible to misuse WE8DEC and store characters that don't actually exist in this characterset:
Comparing WE8DEC to WE8MSWIN1252, then these 1252 characters are not known in WE8DEC:
¦¬®¯´¸¾ÐÞð÷×þ €‚ƒ„…†‡ˆ‰Š‹Ž‘’“”•–—˜™š›žNote þ - this looks like one of your problem characters...
Check the source data by connecting with SQL Developer. If the characters appear there OK, everything's good. If they don't, you've got a problem!
MOS note 1104893.1 explains in detail the process of converting from WE8DEC > WE8MSWIN1252. Have a read of this, it should help you sort out the what you're doing.