Hi,
I'm trying resolve a problem I'm having trying to send utf-8 data and the calculation of the length of that data. If I make the following post:
(defconstant +utf-8+ (make-external-format :utf-8 :eol-style :lf)
(http-request "http://odeon:5984" :content-type "application/xml" :external-format-out +utf-8+ :content "e" :method :put)
The resulting request looks like this:
PUT / HTTP/1.1 Host: odeon:5984 User-Agent: Drakma/0.11.1 (OpenMCL Version 1.1-pre-070722 (DarwinX8664); Darwin; 9.1.0; http://weitz.de/drakma/) Accept: */* Connection: close Content-Type: application/xml Content-Length: 1
e
Which is right. But if I replace the "e" content with "é" (e accent acute), the request looks like this:
PUT / HTTP/1.1 Host: odeon:5984 User-Agent: Drakma/0.11.1 (OpenMCL Version 1.1-pre-070722 (DarwinX8664); Darwin; 9.1.0; http://weitz.de/drakma/) Accept: */* Connection: close Content-Type: application/xml Content-Length: 1
..
The hex values of the ".." are C3 A9, which is the utf-8 value for é. The problem is, of course, that the content length is really 2.
I assume I'm doing something wrong, but I don't know what exactly that would be. Should I be calculating the length myself?
thanks for any pointers or suggestions.
- Peter