From: oleg <oo...@ua...> - 2020-09-04 11:53:00
|
On Fri, 4 Sep 2020 10:31:53 +0200 Zoran Vasiljevic <zv...@ar...> wrote: > Hi! Hi! > What is the purpose of signalling the binary content way up from the > command line? For this we have the Ns_IsBinaryMimeType(cType) test. > Sometimes we have to deal with misconfigured legacy sites, which transmit data in 8-bit encoding and report "Content-Type: text/plain" without specifying charset. Such data will be broken, since it will be processed ns_http as utf-8. Receiving binary content in this case will allow us to correctly recover data using 'encoding convertfrom' command > > > Sometimes converted strings become > > corrupted. For example, there is a server with output encoding > > iso-8859-2 > > This is I guess out of the scope as we rely on Tcl to do > encoding conversions. So if this comes bad, then you must > post a bug to the Tcl project. As far as I understand, this is not a Tcl problem. ns_http uses Tcl_NewStringObj for nonbinary data received, even for 8-bit chars. Input data for Tcl_NewStringObj must be correct utf-8 string. An 8-bit string is not. For 8-bit strings, we must either use Tcl_NewByteArrayObj or prepare the utf-8 string using Tcl_ExternalToUtf before Tcl_NewStringObj . Oleg. |