I'd recommend Innsbruck in Austria! It's a beautiful city, plenty to see. The whole Tirol region is gorgeous. If he's into trains, you could fly to Zurich and then take the train to Innsbruck, it's a really scenic journey.How long for?
There isn't loads to see in Krakow unless you do trips to see the salt mine or Auschwitz. Unless he particularly wants to go Auschwitz would be heavy for a birthday trip.
Budapest is lovely and has great, cheap food (we ate Michelin-starred food for less than a chain restaurant here).
If you want snow I'd stick to Scandinavia.
Realise I've just quoted the wrong post