My cat peed on a sofa cushion once as she was recovering from an operation (curtain climbing mishap resulted in a toe so badly dislocated/torn it required amputation). I think the pain meds may have been too strong, but anyway... I was prepared to have the sofa put out on the street for disposal, but my Russian cleaning lady, who bullies me into doing things her way most of the time (because I'm slovenly, and because she's a genius about fixing stuff so nothing ever needs to be thrown away), said it would be "evil and so stupid" to discard the sofa, so she took off the peed-upon cushion, put it in the tub, and doused that thing with bottle after bottle of plain white vinegar. No rinsing, just saturation with white vinegar for a day. Then she left the cushion in a sunny window for a week.
The cushion smelled of salad dressing for a week or so, but no cat pee smell at all.