I'd like to know which of these two phrases you use more often. I know that in general they both mean "a double edged sword" is one used more in Taiwan or in mainland China?
刀, by definition, usually has a curved blade with one sharpened edge. Thus a Samurai's sword, a scimitar, and a machete all fall into the definition of 刀.
If it has a double edge, and it has a straight shape, it is usually a 剑.
双刃剑 is the standard translation of double-edged sword. There is no usage difference between Taiwan and the mainland.
In very rare cases, 两面刀 is short for 两面三刀, which describes a two-faced person who is secretly trying to harm the other.
For such comparison, google is a nice tool. You can compare the popularity of words by the number of results found by Google. Remember to put a phrase in double quotes to search the exact phrase.
- "两面刀" used to be a popular phrase in Ming dynasty. Most search results of "两面刀" are sayings in Ming dynasty that contain "两面刀".
- The literal meanings of "双刃剑", "两面刀" are rarely used, their metaphorical meanings are quite different.
双刃剑 is usually used to describe something having a good side and a bad side, it may solve a problem, but it creat another problem at the same time. Just like a double-blade-sword, you can force it to your enemy to hurt him, but if your enemy push it back, it can hurt you. 双刃剑 is never used to decribe a person.
两面刀 is rarely used. I think it might be used as short of 两面三刀, which means a person pretends to be your friend for today, and turns his back on you or betray you tomorrow.