Assuming that you are creating a database from scratch, do not try to modify an existing database that introduces other problems.
In the database, you need to make sure that the database character set supports all the characters that you want to keep. Presumably, this means setting the NLS_CHARACTERSET database to AL32UTF8. Personally, I also prefer to set NLS_LENGTH_SEMANTICS to CHAR. This changes the default behavior of VARCHAR2 (n) to allocate n storage characters, not n bytes. Since AL32UTF8 is a variable-length character set, using byte semantics is usually problematic because you either have to declare fields that are 3 times longer, and ultimately different users can enter different numbers of characters in one field.
NLS_LANG - . , . .