[Zope-Checkins] CVS: Zope3/lib/python/Zope/PageTemplate - TALES.py:1.3
Stephan Richter
srichter@cbu.edu
Fri, 14 Jun 2002 12:50:51 -0400
Update of /cvs-repository/Zope3/lib/python/Zope/PageTemplate
In directory cvs.zope.org:/tmp/cvs-serv18258/lib/python/Zope/PageTemplate
Modified Files:
TALES.py
Log Message:
Finished Zope 3 Unicode support. Zope 3 should now be able to handle all
unicode formats. Note that ebcoding and decoding unicode strings is based
on the parameters we get from the browser in HTTP_ACCEPT_CHARSET.
All "text strings" (strings that represent human language text) internally
in Zope 3 should be unicode strings from now on! I have not checked all of
Zope 3, so if you see a non-unicode text string somewhere, please convert
it simply by putting 'u' before the string literal.
Note that binary data, such as images are not to be encoded.
The encoding happens on the HTTPRequest/HTTPResponse abstraction level.
That means that currenty FTP does not profit from this new code; however
FTP is always data anyhow.
=== Zope3/lib/python/Zope/PageTemplate/TALES.py 1.2 => 1.3 ===
import re
import sys
-from types import StringType
+from types import StringType, StringTypes
import Zope.ZTUtils
from SafeMapping import SafeMapping
@@ -229,7 +229,9 @@
text = self.evaluate(expr)
if text is _default or text is None:
return text
- return str(text)
+ if not isinstance(text, StringTypes):
+ text = unicode(text)
+ return text
def evaluateStructure(self, expr):
return self.evaluate(expr)