VARCHAR stores non-Unicode text in the code page of the column's collation, the character set that collation supports. NVARCHAR stores Unicode text, so it can hold any language.
VARCHAR(n): n is a size in bytes, up to 8,000. With a single-byte collation such as a non-UTF-8 Latin one, each character takes 1 byte. It suits text that fits one code page, such as English.
NVARCHAR(n): n is a size in byte-pairs, up to 4,000. Most characters take 2 bytes. Supplementary characters, those outside the basic Unicode range such as many emoji, take 4.
NVARCHAR needs more storage but supports international text. Unicode literals need the N prefix, as in N'Zürich', or they are converted to the database code page and can lose characters. From SQL Server 2019, a UTF-8 collation lets VARCHAR store Unicode too.
Rewriting in plainer words…
This answer doesn't lend itself to a diagram - it reads best . No credits were charged.