I\'m writing a python program to judge emoji with a collected emoji unicode set. During the test, I found that one emoji,take ☁ as an example, has two unicode,
That's the Variant Form, which provides more information for those displays, that are capable of displaying with colour and other things.

This chart gives you the difference between FE0F and FE0E:
You could consider that the FE0E version is the unicode text version, and the FE0F version is with graphics (those which are capable will display graphically), which gracefully degrades to text version, when graphical display is not available.