This is a very old topic, however cleaning carpets and sails and what-not are always topical!
I have had excellent results in soaking the dirty fabric items in a solution of Oxyclean in water in a glass baking dish. I leave it for hours ... sometimes days if the items are particularly blackened. It is almost always effective. Once the item is clean to my satisfaction I just rinse it with clean water and air dry on a paper towel.
Many a Victorian area rug or Medieval banner that I thought I'd have to throw out were miraculously saved this way ;

.