I have seen that Dinesh Karthik from team India wears his jersey in the recently concluded Asia Cup 2014 with his name as DK. Is it permitted? I have seen players who use their nicknames in county games but not in international games.
Not sure about ODI matches but in T20I match it is allowed to use nicknames. Here is a photo of a T20I match between Australia and India played at Melbourne on 1st Feb. 2008. In this match, IIRC all Aussie players used their nicknames instead of surnames e.g. Brett Lee used Binga instead of Lee, Michael Clarke used Pup instead of Clarke.
Again this may be allowed only in bilateral series and not in big tournaments like World T20.
In ODIs too it is allowed to use nicknames on jersey. Parvez Rasool in his debut match against Bangladesh used "Parry" on his jersey. And some comments regarding this was posted on Cricinfo:
"It may well be a storm in a teacup but am not a big fan of using shortened names or nicknames in your T-shirt when you are representing your country - the case in question being Parvez Rasool's t-shirt carrying the name Parry. "