I once found this fantastic website: Explaining Surah 9:29
One of the things that learned from it is that there are two separate words for a disbeliever:
KAAFIR (sing.) Kaafiroon or Kaafireen (plu.): These are non-Muslims who rejected Islam after knowing and understanding Islam from authentic sources. See Qur'an verses 2:6-7 about them. I would like to translate the term as "Islam-rejecters" but the ignorant translate it as "infidels". Unfortunately, ignorant translators use the term infidel for Mushrik as well as Kaafir whereas these are very different terms.
JAAHIL (sing.) Juhla or Jahiloon or Jahileen (plu.): As a Qur’anic term jaahil means those ignorant people who are unaware of Islamic teachings and they didn’t have a chance to accept or reject Islam. Once a person rejects Islam after knowing its teachings and understanding from authentic sources, this person would be a Kaafir. Literally jaahil is any uninformed or uneducated person including Muslims who did not make efforts to know the teachings of the Qur’an and the Sunnah of the Prophet. Some learned Muslims have the opinion that a Kaafir may also be a Jaahil; the case in point may be Abul Hakam Amr ibn Al-Hisham knew the message of Islam yet he rejected it and the Prophet called him Abu Jahal, the father of ignorance.
I only ever however hear the term Kaafir used, and it strikes me that in some cases it may be more appropriate to say Jaahil, not Kaafir. Am I wrong in my assumption? The issue is also compounded by the fact that some people can be both, according to some opinions. In this case, which is more correct?