Имеется строка в следующем формате (API Posterous возвращает сообщения в этом формате):
s="\\u003Cp\\u003E"
Как я могу преобразовать его в действительные символы ascii, чтобы s="<p>"
?
В OSX я успешно использовал Iconv.iconv('ascii', 'java', s)
, но после развертывания в Heroku я получаю исключение Iconv::IllegalSequence
. Я предполагаю, что система, которую развертывает Heroku, не поддерживает кодировщик java
.
Я использую HTTParty , чтобы сделать запрос к Posterous API. Если я использую curl для того же запроса, тогда я получаю , а не , получая двойные слэши
Со страницы HTTParty github:
Автоматический анализ JSON и XML в
рубиновые хэши, основанные на ответе
тип контента
Posterous API возвращает JSON (без двойной косой черты), а JSON-анализ HTTParty вставляет двойную косую черту.
Вот простой пример того, как я использую HTTParty для выполнения запроса.
class Posterous
include HTTParty
base_uri "http://www.posterous.com/api/2"
basic_auth "username", "password"
format :json
def get_posts
response = Posterous.get("/users/me/sites/9876/posts&api_token=1234")
# snip, see below...
end
end
При замене очевидной информации (имя пользователя, пароль, site_id, api_token) действительными значениями.
В момент снэпа response.body
содержит строку Ruby в формате JSON, а response.parsed_response
содержит хеш-объект Ruby, который HTTParty создал путем анализа ответа JSON от Posterous API.
В обоих случаях юникодные последовательности, такие как \u003C
, были изменены на \\u003C
.