что-то не то я получаю посредством http-request'a от drakma:
TRANSLATER> (test "hello")
123:{ 34:" 100:d 97:a 116:t 97:a 34:" 58:: 123:{ 34:" 116:t 114:r 97:a 110:n 115:s 108:l 97:a 116:t 105:i 111:o 110:n 115:s 34:" 58:: 91:[ 123:{ 34:" 116:t 114:r 97:a 110:n 115:s 108:l 97:a 116:t 101:e 100:d 84:T 101:e 120:x 116:t 34:" 58:: 34:" 208:Ð 191:¿ 209:Ñ 128: 208:Ð 184:¸ 208:Ð 178:² 208:Ð 181:µ 209:Ñ 130: 34:" 125:} 93:] 125:} 125:}
"{\"data\":{\"translations\":[{\"translatedText\":\"пÑивеÑ\"}]}}"
((:DATA (:TRANSLATIONS ((:TRANSLATED-TEXT . "пÑивеÑ")))))
source-file:
(defun test (word)
(let ((uri #U"https://www.googleapis.com/language/translate")
(version "v2")
(google-key "AIzaSyBxxVPeFAChUQ_LvjcfnoAbq9khjhNX0yU")
(lang-from "en")
(lang-to "ru"))
(let ((json-reply (http-request
(format nil "~A/~A?key=~A&source=~A&target=~A&q=~A"
uri version google-key lang-from lang-to word))))
(let ((json-string (bin-arr->string json-reply "{")))
(decode-json-from-string json-string)))))
(defun bin-arr->string (arr &optional (start-str ""))
(loop for code across arr
for str = start-str then (format nil "~a~a" str (code-char code))
do (format t "~a:~a " code (code-char code))
finally (return (print str))))