[ic] ic-utf8 readfile/writefile patch
Stefan Hornburg (Racke)
racke at linuxia.de
Sat Mar 21 12:51:06 UTC 2009
Stefan Hornburg (Racke) wrote:
> David Christensen wrote:
>> Folks,
>>
>> I've added a patch to the ic-utf8 tree to support encoding/fallback
>> strategy in Vend::File::readfile and writefile. This is intended to
>> be completely backwards-compatible with both legacy encodings and the
>> current MV_UTF8 scheme while offering the following benefits:
>>
>> - Explicit override of the encoding of any specific file. This
>> defaults to nothing (aka raw) when MV_UTF8 is not set, and utf-8 when
>> MV_UTF8 is set.
>> - Sensible default fallback to provide maximum information in the
>> case that invalid encoding/decoding sequences are encountered.
>> (Fallback strategy is how we deal with invalid/incomplete characters.)
>> - Think future modifications to [include] to provide access to
>> encoding and fallback parameters: [include file="foo/bar/baz"
>> encoding="cp1252"]
>>
>> I'd appreciate testing of this patch; in particular, this should help
>> with Racke's issue encountered with legacy encodings on the index page
>> with MV_UTF8 set.
>
> Yes, it doesn't crash anymore :-).
>
> One problem that might be related to this issue is the delivery of "binary"
> content stored in a UTF8 database.
>
> Currently the files produced are corrupted, and the data in the db is
> definitely correct. And it works with UTF8 inactive (as per bug #259).
>
> The code is as follows:
>
> my $data = $Db{transaction_documents}->field($td_code, 'content');
> $data = $Tag->filter({op => 'decode_base64', body => $data});
Putting at this point:
Encode::_utf8_on($data);
"solves" the problem.
> $Tag->deliver({type => 'application/pdf', body => $data});
>
Regards
Racke
--
LinuXia Systems => http://www.linuxia.de/
Expert Interchange Consulting and System Administration
ICDEVGROUP => http://www.icdevgroup.org/
Interchange Development Team
More information about the interchange-users
mailing list