I am a native Japanese, and I discussed this today. To be honest, this was quite interesting for us.
I see many good answers here. The concept of "inside or outside" in another answer strikes close to a good point. But, I think that answer is a little bit confused because it fails to understand that "to know" is a stative verb but 「知る」is not. A stative verb is a verb which describes state of something. On the other hand,「知る」is a dynamic word, which describes changes.「知る」is "to get/come to know" not "to know." "to know" is 「知っている」.
This also happens to "to have" and 「持つ」.
Let's check some examples.
私はその時にそれを知った。(I didn't know it just before that time, and I knew it just after that time.)
I knew it at that time. (私はその時それを知っていた。)
私はその時にそれを持った。(I didn't have it just before that time, and I had it just after that time.)
I had it at that time. (私はその時それを持っていた。)
So, first of all, there are huge differences between Japanese and English. And, these lead you to the idea of "inside or outside." 「知る」often happens when something comes in.
On the other hand,「分かる」is a stative potential verb. It basically describes someone's ability.
Sometimes, it is possible to use both「知る」and「分かる」. For example, "Do you know this Kanji?" can be translated to both「この漢字、知ってる?」and「この漢字、分かる?」
But sometimes it is not possible to use them interchangeably or the meaning changes.
「知る」is related to perception and sense. This is the broader concept of hear, read, see, learn, etc. which makes someone sure about it. So,「知ってる」means "「知る」has happened and the effect still continues."
「分かる」is related to classification and distinguish. If you have an idea, or if you can explain, link or conclude something, you「分かる」.
I guess the best way to know the difference is to make many examples and compare them!
1
Taro pointed Jiro, and asked Hanako "Do you know him?"
- 太郎は次郎を指さして「この人を知ってますか。」と花子に聞いた。
- 太郎は次郎を指さして「この人が分かりますか。」と花子に聞いた。
The sentence 2 can be natural if 太郎 suspects 花子 loses her memory or if 次郎 is in a panda costume or if 次郎 and 花子 have not seen for a long long time or if 次郎's face has changed.
On the other hand, sentence 1 can be natural in more general cases. It basically means "Do you know this person?"
In this case,
- 「知ってますか。」=> Have you seen him?
- 「分かりますか。」=> Can you recognise him?
2
Suppose that there was a cake on a table, but it disappeared at night.
- 「夜、誰か知らない人に食べられていたよ。」
- "I saw a stranger come in at night and eat the cake."
- 「夜、誰か分からない人に食べられていたよ。」
- "I saw someone eating the cake at night, but I did not find out who it was."
In this case,
- 「知らない」=> Someone I haven't seen.
- 「分からない」=> Someone I could not recognise.
3
Do you know what you are going to do tomorrow? No.
- 「明日の予定は?」「知りません。」
- 「明日の予定は?」「分かりません。」
Actually, the sentence 1 can be natural, for example, if you are a prisoner. You are not going to decide what you are going to do tomorrow, but someone will order you to do something.
You can use the sentence 2 in either case.
In this case,
- 「知りません。」=> I haven't been told.
- 「分かりません。」=> I have no idea.
4
"I felt that I knew that face, and now I know who he is."
- 「あの顔、知っていると思っていたけれど、ようやく誰か分かった。」
- "I felt I'd seen that face, and now I identified him."
- 「あの顔、分かっていると思っていたけれど、ようやく誰か知った。」
- This sounds a little bit strange because it is natural only in a strange case.
For example, "Alice was in disguise. I thought it was Bob. But now you tell me that it was Alice. And, now I know that it was Alice."
5
「あれ、Alice と Bob ってどういう間柄か知ってるよね?」"Wait, do you know the relationship between Alice and Bob?"
「知らない。」"No, I do not know."
「Bob のお母さんが Catharine っていうの知ってる?」"Do you know that Bob's mother is Catharine?"
「知ってる。」"I know."
「Catharine と Alice は双子の姉妹なんだよ。」"Catharine and Alice are twins."
「へえ、はじめて知った。」"Huh, this is the first time I know of that."
「よく見ると、顔がそっくりでしょう?」"They look so alike if you look them carefully."
「たしかにそう思っていたけれども、姉妹だとは分からなかったなあ。」"Yeah, I've noticed that, but I did not know that they are sisters."
「Alice と Bob ってどういう間柄か、分かった?」"Do you know the relationship between Alice and Bob?"
「うん、分かった。ありがとう。」"Now I know. Thanks."
次の日。next day.
「Alice は Bob のおばさんだって、昨日知ったよ。」"Yesterday I knew that Alice is Bob's aunt."
6
- 「あの電車の今のスピードは?」
「だいたいなら知ってるよ。このあたりは、いつも時速90キロくらいで走るんだ。」
- 「あの電車の今のスピードは?」
「だいたいなら分かるよ。電柱の間隔が 100 m おきだから、この時計を参考にすると、時速90キロくらいだね。」
In this case,
- 「知ってる。」=> I've heard of it from the authority.
- 「分かる。」=> I can calculate it.
7
- メルトダウンの原因をしった。
- If someone told me the reason.
- If I went close to the atomic furnace and found an alien ship!
- メルトダウンの原因がわかった。
- If we studied the reason for the meltdown and now we are sure.
In this case,
- 「知った。」=> I heard of it. / I saw the CAUSE!
- 「分かった。」=> Now I got the reason.
8
- (ある人が)これから何をするかはだれも分からない。
- (ある人が)これから何をするかはだれも知らない。
In this case,
- 「知らない。」=> Have not heard.
- 「分からない。」=> Have no idea.
By the way, you can say "誰にも分からない" but not "誰にも知らない." But, you can say "誰にも知られていない."
9
- コピー機の使い方がよくわからない。
- コピー機の使い方をよくしらない。
These two are almost the same.
In this case,
- 「知らない。」=> Have not learned.
- 「分からない。」=> Cannot use.
10
- 「それ食べちゃ駄目だよ。」「分かったよ。」
- "You should not eat it." "I see."
- 「それ食べちゃ駄目だよ。」「今知ったよ。」
- "You should not eat it." "Now I understand that."
I feel slight accusation from the second one because it sounds like "This is the very first time you tell me that." or "Why didn't you told me earlier?"
Also,「今分かったよ」and「知ったよ。」are not natural responses.
- 「分かった。」=> I changed my state to "understood."
- 「知った。」=> A certain fact comes into me.