[Zope-DB] Cleaning apostrophes
cnk at caltech.edu
Wed Sep 15 19:06:18 EDT 2004
Why are you using / to escape the '? It appears to be legal but I
think the more normal escape for PostGres is to use two
apostrophies. From Practical PostGreSQL:
The fact that string constants are bound by single quotes presents an
obvious semantic problem, however, in that if the sequence itself
contains a single quote, the literal bounds of the constant are made
ambiguous. To escape (make literal) a single quote within the string,
you may type two adjacent single quotes. The parser will interpret
the two adjacent single quotes within the string constant as a single,
literal single quote. PostgreSQL will also allow single quotes to be
embedded by using a C-style backslash:
Quoting Lalo Castro <laloc at ucsc.edu>:
> I apologize if this is a simple enough question. I am something of
> a newbie...
> We are using Zope 2.6.0, python 2.1.3, and pSQl 7.3.4 on a freebsd4
> There is a webform we have that has to be able to accept
> apostrophes. PostgreSQL sees the apostrophes as the end of string and
> errors out at the next character. We've been trying to build a python
> script to escape the apostrophes before they get sent off to the database,
> but the writing has become problematic. Here's the script:
> import string
> unapostrophated = string.replace(apostrophated, "'", "\'")
> return (unapostrophated)
> This doesn't work, as python sees the escape character as escaping
> the apostrophe and replaces, say, "here's" with "here's" (as opposed to
> "here\'s", which is what we want.
> We've also tried escaping the escape character ("\\'" which makes
> "here\\'s"), and raw text (r"\'" which makes "here\\'s"), to no
> solution. PostgreSQL sees the double backslash and errors out. Other
> attempts were ASCII text ("\034'") and the html code ("?034:'") and
> unicode for apostrophes ("\\a"). None of which worked.
> Is there a way to do this within the python script? If I am missing
> a solution using another method other than the python script, please let
> me know.
> Thanks in advance for any help.
> Zope-DB mailing list
> Zope-DB at zope.org
More information about the Zope-DB