ज़ is correct, but because ज़ is not a natural sound in most of the indian languages(sanskrit doesn't have ज़), so it is pronounced(or written)(wrongly) to its closest ज. correct and good practice is to pronounce and write ज़ only. Also, in colloquial hindi(as far as i know), arabic/persian letters غ(ग़), خ(ख़), ق(क़) are rarely pronounced properly. to know how they are pronounced in aam bolchaal,read as if there are no dots below the letters written in devanagari :D