Date: Thu, 28 Jul 2011 11:26:53 +0200
From: Deniz Dogan<deniz@dogan.se>
(defun fetch-and-show ()
(interactive)
(let* ((old-buffer (current-buffer))
(url "http://dogan.se/sites/default/files/example.xml")
(buffer (url-retrieve-synchronously url)))
(with-current-buffer buffer
(let ((doc (car (xml-parse-region (point-min) (point-max)))))
(with-current-buffer old-buffer
(insert
(nth 2 (nth 2 (nth 3 doc)))))))))
The XML file is encoded in iso-8859-1 with a bunch of Swedish characters
here and there. The buffer I'm testing this with is *scratch* with
utf-8-unix. It should insert "hallÄ" but inserts "hall\345".
I have no idea whether I should use `encode-region-string' or
`decode-region-string' or what.
"Encoding" means converting Emacs's internal representation into an
external representation you want to send to a disk file or another
program. "Decoding" is the opposite conversion: from an external
representation that you found in a disk file or received from a
network socket to the internal representation Emacs uses in its buffer
and string objects.
So you want "decode-" functions, in this case decode-coding-string,
since you've got the external representation in a string.