On Oct 13, 2011, at 6:03 AM, Greg Sabino Mullane wrote: >> I think what I haven't said is that we should just use the same >> names that Perl I/O uses. Er, well, for the :raw and :utf8 >> varieties I was, anyway. Perhaps we should adopt it wholesale, >> so you'd use ":encoding(UTF-8)" instead of "UTF-8". > > That's pretty ugly. I don't think we need to adopt the I/O > convention, as there is no direct mapping anyway, it just > confuses the issue.
Sure. In that case, I'd say ":utf8", ":raw", or "$encoding". >> For DBD::Pg, at least, if client-encoding is set to Big5, then >> you *have* to encode to send it to the database. Or change the >> client encoding, of course. > > Not sure I'm following this completely. Or rather, why this should > be the DBDs role. By default, yes, the DBD should DTRT here. But I think there also ought to be a way to tell it what to do. >>> How would one map things - just demand that >>> whatever is given must be a literal encoding the particular database >>> can understand? >> >> I think we should standardize on the Perl IO names for these things. >> Some databases may not support them all, of course. > > Hm... I don't know enough about the various DB's encodings to see > how good an idea that is. I assume that it's all over the map, so we should be as general as we can. Specifying an encoding by name should cover everything. >> No, I think just "encoding", and "utf8" would be invalid, >> but ":encoding(UTF-8)" would not. > > Again, ugh. Although a *little* less confusing when contrasting: > > $dbh->{encoding} = ':encoding(utf-8)'; > > $dbh->{encoding} = 'utf8'; Yeah, or we can go with my original suggestion: $dbh->{encoding} = 'UTF-8'; $dbh->{encoding} = ':utf8'; >> Well, I think we might have to have it with the pg_prefix until >> this stuff is finalized here. Not sure, though. > > That's my point - if we can get it finalized here, we can avoif the > pg_prefix entirely, rather than add it now and then deprecate it later. Sure. I suspect this is going to take a while, though. Best, David