I saw the word foe in a book and the word enemy in a comic-book. Is there a difference between these two words? Maybe foe is more similar that adversary, opponent, rival.
Dictionary says that foe = enemy. But then if I recall all the instances, 'foe' is the word used in journalism, news or more politically where 'enemy' would be considered rude or offensive. So, 'foe' is a polite way to say 'enemy'!
Note that the dictionary mentions 'foe' as an old-fashioned or formal term.
To conclude, use these words carefully. They are not always interchangeable.
They mean (roughly) the same, but they are not the same word.
Consider powerful car and strong car. We usually use powerful car rather than strong car, even though strong and powerful (usually) mean the same thing. (The same goes for strong/powerful tea/computer/drug/etc.) One choice usually sounds better in a given occasion/register/context.
It's not easy to point out all the possible subtleties of words in all possible uses, especially when it's used with other words. My general idea for the two words is: enemy is a common word; foe is generally used in literary language.
Additional information: I posted this answer because I wanted to point out that it's more than about the word itself (besides a concern about "'foe' is a polite way to say 'enemy'!" in another answer, which could be misleading as well). Our choices of words are usually influenced by collocation and contexts. Simply stating that "'foe' is the word used journalism, news or more politically where 'enemy' would be considered rude or offensive", though somewhat true (more or less), could be misleading.
Consider this phrase: enemy of the state. We normally use enemy of the state. Calling someone a foe of the state may be possible, but it would sound somewhat uncommon, unless it's used together with other collocates, e.g. He's neither friend nor foe of the state.
I will try a more pointed and complete answer. For nearly every word-sense, English has two words, one Germanic and one Latin. "Enemy" is Latin, and "foe" is Germanic. The Germanic is older and tends to be falling into obsolescence and archaic idiomatic use only. This is what happened to "foe". Nobody uses this word today for its original general meaning. Only in idioms and metaphoric abductions. This is why journalists can use it for "rival" as the general readers do not recognize the negative meaning in it any more. And this is why it has survived in the idiom "friendly foe" which was helped staying preserved by its being an alliteration.
But to really understand the semantic field here you should do some back and forth translation with other Germanic languages, e.g., German which does not have this Latin duplication of all word senses. So, here "enemy" translates to "Feind" and in German "Feind" has that negative meaning way beyond rival / Rivale. Now if you translate Feind back to English, you must see the cognate "fiend" and then you see what happens? "Fiend" connotes so much evil that it sucked up some of the connotation of evil from foe. Foe is related to "feud" so its someone you can maintain a deep and long relationship of enmity even in truce.