Translation:Maybe he had taken you for a foreigner.
Can this also work: "Maybe he had mistaken you for a foreigner." ? Or it has to be "ti aveva scambiato" in that case ?
Taken for preso is more literal, and it's very colloquial in both languages; I don't think there would be any significant difference in meaning using scambiato and mistaken.
Really surprising (a nice one I suppose) that this idiom is the same in Italian. They must have pinched it :)
It could be if you translate it all to the feminine: "forse lui ti aveva presa per una straniera". In cases such as this, however, the participle agreement is optional, i.e. "forse lui ti aveva preso per una straniera" is acceptable as well.
again, what's the difference between "avere + preso" and "essere + preso"? I noticed both.
I'm assuming English is not your native language.
A stranger is simply a person you do not know. The word has nothing to do with the person's origin.
A foreigner is a person from a different country. The word does not reflect at all on whether you know the person.
because of the "str" in straniero. It would be " lo" for the definite article, not "il" as well.