Unicode、UTF8、UTF7、UTF16、UTF32、ASCII和ANSI编码之间有什么区别?这些对程序员有什么帮助?

UTF-8、UTF-16和UTF-32之间有什么区别?我知道它们都将存储Unicode,并且每个都使用不同的字节数来表示一个字符。选择一个比另一个有优势吗?