I created a Nvarchar2 column but I am unable to insert utf8 characters into this column from sql or plsql without losing most of the characters to upside down question marks. I can copy paste directly into say Toad and save without issues.

Yes thanks for your input but not that is not relevant, WE8MSWIN1252 is valid database character set.

We have a cots product using that database that is not compatible with utf8 as database characterset so I cannot change to AL32UTF8. This is why oracle created a "N" type column to handle just this type of requirement

The database client must bind its input variables appropriately for data to travel directly from the client to the NVARCHAR2 column, without intermediate representation in the database character set. See here: http://docs.oracle.com/cd/E11882_01/server.112/e10729/ch7progrunicode.htm#CACGCEAI and here http://docs.oracle.com/cd/E11882_01/server.112/e10729/ch7progrunicode.htm#i1008882