В настоящее время я создаю клиент Rest для создания постов в блоге в духе pastie.el. Основная цель для меня - написать текстиль в emacs и сделать сообщение в приложении Rails, которое его создаст. Он работает нормально, пока я не наберу что-нибудь на испанском или японском, тогда я получаю ошибку 500. У pastie.el такая же проблема, кстати.
Вот код:
(требуется 'url)
(defun create-post()
(interactive)
(let ((url-request-method "POST")
(url-request-extra-headers '(("Content-Type" . "application/xml")))
(url-request-data (concat "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
"<post>"
"<title>"
"Not working with spanish nor japanese"
"</title>"
"<content>"
;; "日本語" ;; not working
;; "ñ" ;; not working either
"h1. Textile title\n\n"
"*Textile bold*"
"</content>"
"</post>"))
) ; end of let varlist
(url-retrieve "http://127.0.0.1:3000/posts.xml"
;; CALLBACK
(lambda (status)
(switch-to-buffer (current-buffer)))
)))
Единственный способ, которым я могу представить себе сейчас, что проблему можно решить, это заставить emacs кодировать символы utf-8 так, чтобы 'ñ' стало '& # 241' (что работает кстати).
Каким образом можно обойти эту проблему?
РЕДАКТИРОВАТЬ: '*' не эквивалентно & ast; '. Я имел в виду, что если я закодирую в utf-8 с помощью emacs, используя, например, 'sgml-char', то весь пост станет закодированным в utf-8. Как & ast; Текстиль жирный & ast; таким образом, делая RedCloth не в состоянии конвертировать его в HTML. Извините, это было очень плохо объяснено.