On 11.07.21 14:14, Maksym Zinchenko wrote:
Hello,I'm having trouble with encodings, or maybe I don't understand something. My first question is: when I run *"ns_charsets*" command it will not return UTF-8 encoding in the list, why and what does it mean?

Dear Maksym,

"ns_charsets" is a code that was not touched since a very long time. In essence, it provides a mapping between "official" charset names and tcl-encodings. In general charsets can have multiple names for the the same thing (preferred MIME name, official name, aliases)

For example the preferred mime charset "iso-8859-1" is mapped to the Tcl_Encoding named "iso8859-1". If a charset name is not returned via "ns_charsets", it is used literally. So, the charset "utf-8" is mapped the the Tcl_encoding with the same name. The charset mapping can be extended via the configuration file (section "ns/charsets").... so in essence, "ns_charset" just returns entries which require special mappings.

When i look at the IANA page, i see several entries there, which are not in the naviserver default table. So, one should check, what's feasible to be added.

The Second problem is: I'm trying to *"ns_return"* XML UTF-8 data from my RESTFull API responder.
ns_return 200 "application/xml; charset=utf-8" [dict get $response data]

But firefox complains about "XML Parsing Error: not well-formed" it will get stuck at portuguese characters, Response header in firefox dev console shows: "Content-Type
application/xml; charset=utf-8", what I'm doing wrong?
Probably, the "data" element of dict "response" contains binary data (a Tcl byte array). I can see nothing wrong in NaviServer, check below for a minimal test setup.

all the best

-gn

==============================================================================================
 xml-responder.tcl
ns_return 200 "application/xml; charset=utf-8" 
<root><name>Motörhead</name></root>\n
==============================================================================================

Testing:

$ curl -k -ihttps://localhost:8443/xml-responder.tcl
HTTP/1.1 200 OK
Server: NaviServer/4.99.21
Date: Sun, 11 Jul 2021 17:51:50 GMT
Content-Type: application/xml; charset=utf-8
Content-Length: 37
Connection: keep-alive
X-Content-Type-Options: nosniff
X-XSS-Protection: 1; mode=block
Referrer-Policy: strict-origin

<root><name>Motörhead</name></root>
_______________________________________________
naviserver-devel mailing list
naviserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/naviserver-devel

Reply via email to