In http://msdn.microsoft.com/en-us/library/ms187403.aspx , I found
"The SET ANSI_PADDING setting does not affect the nchar, nvarchar, ntext, text, image, and large value. They always display the SET ANSI_PADDING ON behavior. This means trailing spaces and zeros are not trimmed"
I think it is why there is a difference of behavior between nchar and char or between nvarchar and varchar datatypes.