Re: mixed encoding and Simpleentiy
Jean-Christophe Michel <jc.michel-/aRvmaKoZxNWk0Htik3J/[email protected]> Mon, 27 Jun 2005 09:15:59 +0200
| Newsgroups | gmane.comp.lib.binarycloud.devel |
|---|---|
| Message-ID | <[email protected]> |
Bas Kamer wrote > Simpleentity translates the data on lading from the datasource encoding > to the output incoding. I believe this is wrong. > > Firstly if there is a translator for getting data, then there should > also be one for putting it back in the database. But my main point is > that it should not translate to and from the output encoding but to the > encoding that that particular Node is using. (Which is currently > always UTF-8, see #219). > > Let me illustrate. > > We need to serve iso-8859-1 encoded html pages. > There is a database in which the data is encoded in iso-8859-1. > > When binarycloud starts it sets internal encoding set to utf-8 and > treats all variables as such. All templates, ndf, translation, php, > etc... are utf-8. Even POST/GET values are translated to utf-8 (not > cookies though) > Binarycloud then sets output encoding to whatever is desired > (iso-8859-1) and will initiate an output buffering session with the > iconv_ob_handler parameter, all output send to the browser will first > be encoded. > > Because SimpleEntity translates the data from the datasource encoding > to the output encoding a Node potentially can receive iso-8859-1 data. > If a Node would only save that data back into the database there is no > trouble, but when the data travels to the browser it is first > translated from utf-8 to iso-8859-1 andd then return via a POST > operation, the then presumed iso data is translated back into utf-8 and > then that is being save as utf-8 in a iso-8859-1 database. > > It seems to make more sense to translate it to utf-8 before > SimpleEntity returns and data to the Node. Additionally it should then > do the oposite translate from utf-8 to datasource encoding while saving > data. You're right; I already changed binarycloud/creole/drivers/mysql/MySQLResultSet.php and to convert all encodings whenever db encoding is not utf8. So converting in SimpleEntity too is useless. Concerning cookies, I didn't see wether we need to convert it to utf8 or not. As I use it to store session id only, I'll probably not see the need of a more advanced conversion :-) ANother point: didn't you mention the need to specify an 'encoding' for each node, and have each node convert its children's output from their encoding to its own ? (Though personnally I find it simpler to decide that all vortex nodes should output utf8, and eventually use iconv once in htdocs/* file to convert to another specific encoding if necessary) -- Jean-Christophe Michel _______________________________________________ dev mailing list dev-PnctHDZWAvB/Cz2I37pSEPZ4XP/[email protected] http://lists.binarycloud.com/mailman/listinfo/dev