pet urine, whiskey, perfume, you can use white vinegar to get rid of most smells on most materials: carpets, furniture, clothes, without damaging the material.
vinegar is amazing at breaking down odors and then evaporating and not leaving a trace.
I use vinegar for all cleaning in my house except pet urine. Vinegar will clean dog urine okay, especially in the laundry. But you GOTTA use an enzymatic cleaner for cat urine or take it out to bake in the sun for days.
On fabrics? I guess I should clarify I meant any fabrics or carpet. Vinegar does a good job as a last step because I always put it in the second wash (after the enzymatic cleaner) to get any smell that survived.
I've tried vinegar on cat urine on carpet and it didn't dent the smell. Did get the cat spray on walls okay though.
With carpet it depends on how deep it went. If it's a big spot, chances are it's through the padding and maybe even subfloor, and the odor comes back if not completely neutralized. I've had to pull up and replace padding before in spots because once it gets in that stuff, it's hard to get out. The carpet itself isn't the problem.
Also, once you've seen underneath a carpet/padding that has some age to it, you won't want carpet again. It's no wonder odors linger.