Monday, November 08, 2010 at 12:07 AM.
system.verbs.builtins.xml.rss.decodeString
on decodeString (s, flNeuterMacros=true) { <<Changes <<5/27/08; 5:11:12 PM by DW <<More comprehensive character corrections using string.multipleReplaceAll. <<5/26/08; 7:51:31 PM by DW <<Change a curly-quote to a single-quote. <<11/30/02; 5:33:41 PM by JES <<New optional parameter, flNeuterMacros. Defaults to true, preserving existing behavior. <<10/2/02; 9:04:47 PM by JES <<Don't decode entities that were already decoded by xml.compile when the channel was loaded. Fixes the double-decoding bug where sample HTML text was being displayed in the news page as actual HTML. <<3/15/02; 5:54:43 PM by DW <<Created. Factored out of xml.rss.compileService, so drivers can get at it. bundle { //pass through string.multipleReplaceAll local (t); new (tabletype, @t); t.["“"] = "\""; t.["”"] = "\""; t.["Õ"] = "'"; t.["“"] = "\""; t.["”"] = "\""; t.["—"] = "--"; t.["'"] = "'"; t.["""] = "\""; s = string.multiplereplaceall (s, @t, false)}; <<s = string.replaceAll (s, "'", "'") <<s = string.replace (s, "Õ", "'") //5/26/08; 7:51:20 PM by DW <<s = string.replaceAll (s, """, "\"") s = xml.entityDecode (s, false, true); //false means we don't want to decide &, > and < -- they've already been decoded by xml.compile. if flNeuterMacros { s = string.replaceall (s, "{", "{"); s = string.replaceall (s, "}", "}"); s = string.replaceall (s, "<%", "<%")}; if system.environment.isMac { //02/22/2001 JES: convert to Mac text on Macintoshes s = latinToMac.convert (s)}; return (s)}; bundle { //test code dialog.alert (decodeString ("jessieÕs cute skirt"))}
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.