核心问题
Hello, I ____ you ____ in London. How long have you been here? A. don't know, were B. hadn't known, are C. haven't known, are D. didn't know, were(全国高考)
答案为 D。这个答案使我感到很奇怪:明明是讲现在的情况,为什么要用过去时 didn't know 和 were?
词典解答
这里之所以使用 I didn't know, 而不使用 I don't know, 是因为要表达“此前我不知道”,而不是表达“现在我不知道”。虽然在表达前一种意思时汉语常常说“我不知道”,但在英语里却绝不可以说 I don't know,而必须说 I didn't know. 例如:
“One dollar each, young man.” “Oh, dear! I didn't know they cost so much.” “一元钱一本,年轻人。” “哦!我不知道会这么贵的。”
现在来解答另一个问题:上面的句子明明是说我(原)不知道你现在在伦敦,为什么要用 You were in London 呢?这是因为英语里有一个时态呼应原则的缘故,见 sequence of tenses , indirect speech 。