The definitions are pretty similar but the common usage is a bit different. Weird is used in a really wide variety of situations to describe people or things that one deems unusual/strange/creepy, whereas in normal conversation, uncanny is almost exclusively used when people or situations bear a striking and unsettling resemblance to each other.
Ex 1 "That guy keeps looking at us, it's so weird."
Ex 2 "Hey that guy over there looks EXACTLY like Jimmy...it's uncanny!"
You can use weird in example 2 and that would be fine, but to native speakers it might sound strange (or weird!) if you use uncanny in example 1.