I like your quotation fail :)
eval("%s=\'""@%s@"\';");
Oddly enough, the last time I checked, ''@%s@'' seemed to work as well. This is totally idiotic, but it did seem to work...
EDIT: Nope, just tested it. Totally does not work.
The best way is probably addTaggedString(%s);, which, despite the name, returns the correct value both if the string's never been tagged before as well as if it has.