[dancer-users] Failing to send a file in iso-8859-1
Russell Jenkins
russell.jenkins at strategicdata.com.au
Fri Oct 7 11:27:26 BST 2016
On 6/10/2016 11:56 PM, Lutz Gehlen wrote:
>>> send_file(
>>>
>>> \$str,
>>> content_type => 'text/csv',
>>> filename => 'foo.csv',
>>>
>>> );
>>>
>>> The problem is that external requirements force me to send the file
>>> in iso-8859-1 and it seems that I cannot manage to achieve that.
>> As far as I understand, the charset is set in config, so you could try
>> to override the setting in your route like:
>>
>> set 'charset' => 'iso-8859-1;
>>
>> Never tried, but it should work.
> Yes. this works. However, it changes charset permanently (for the current
> process) and I don't get the chance to change it back because send_file does
> not return. Is there no way to set it temporarily just for this send_file?
There should be no need to change your apps charset.
If you look at any of the HTTP specs, a Content-Type header looks like:
Content-Type: text/html; charset=utf-8
Without digging into the Dancer1 code,
send_file(\$str, content_type => 'text/html; charset=utf-8', filename
=> 'foo.html' );
should DWIM (it will in Dancer2). Substitute your own mime types and
encoding as needed.
Hope that helps,
Russell
@veryrusty
More information about the dancer-users
mailing list