Вывод UTF-8 из сервиса Socialcast Rest Api

Я использую API для отдыха Socialcast с CURL. Вот моя команда curl,

`curl -k -X GET -v --basic -u "email:password" https://<dpmain>.socialcast.com/api/messages/18755210.json`

Вывод для вышеуказанной команды:

{"message":{"id":18755210,"user":{"id":964633,"name":"username","url":"myrepo","username":"myname","active":true,"te
rminated":false,"inactive":false,"role":"member","type":"User","title":"SE","out_of_office":false,"back_in_office_on":null,"company_login":null},"title":"","body":"\"\u
0db8\u0dad\u0dca \u0d9a\u0dd4\u0da9\u0dd4 \u0d9a\u0db1\u0dca\u0da7\u0dda\u0db1\u0dbb\u0dba \u0dc3\u0db8\u0dca\u0db6\u0db1\u0dca\u0db0 \u0dc3\u0dd2\u0daf\u0dca\u0db0\u0d
d2\u0dba\u0dda\u0daf\u0dd3 \u0d85\u0d9c\u0db8\u0dd0\u0dad\u0dd2\u0dc0\u0dba\u0dcf\u0d9c\u0dda \u0dbb\u0dd9\u0daf\u0dca\u0daf \u0d9a\u0dd0\u0d9e\u0dd3 \u0db1\u0dd2\u0dbb
\u0dd4\u0dc0\u0dad \u0db4\u0dda\u0db1\u0dca\u0db1\u0dda \u0da2\u0dcf\u0dad\u0dd2\u0d9a \u0dc4\u0dd9\u0dc5 \"","action":"","verb":null,"message_type":"status_message","i
con":null,
"external_url":"","created_at":"2013-12-14T14:43:01+00:00","updated_at":"2013-12-14T14:43:01+00:00","likes":[],"likes_count":0,"comments":[],"comments_count":0,"attachm
ents":[],"media_files":[],"contains_url_only":true,"external_resources":[],"tags":[],"last_interacted_at":1387032181,"group":{},"category_id":null,"recipients":[],"thum
bnail_url":null,"player_url":null,"player_params":null,"likable":false,"ratable":false,"rating":null,"ratings_average":null,"ratings_count":null,"editable":true,"deleta
ble":true,"watchable":false,"watch":null,"flag":null,"source":{"name":"web","formal_name":"Web App","id":"web"},"poll":null,"embed":null,"hidden":null,"subscribed":null
,"groups":[],"extensions":[],"new_group_id":null,"new_group_archived_at":null,"days_of_stickiness":0,"sticky_for_current_user":false}}* Connection #0 to host left intact

Как видите, я получаю в ответ такие символы, как ටේනර. Это символы UTF-8? Как я могу получить читаемый набор символов из этого с помощью Java? На самом деле я должен получить следующие читаемые символы (это на сингальском языке), указанные в них: «මත් කන්ටේනරය සම්බන්ධ සිද්ධියේදී රෙද්ද කැඞී නිරුවත පේන්නේ ජාතික ජාතික»

В любом случае я использую командную строку Windows для выполнения команды curl. Также я попытался указать заголовок типа контента в запросе следующим образом, но тот же результат. "Тип контента", "приложение/json; кодировка = UTF-8"

Также вместо curl я попробовал простую java-программу (http-клиент apache) с eclipse и получил тот же результат, записав в файл.

Дайте мне знать, как я могу получить читаемые символы сверху.

Примечание. Если я выполню эту службу отдыха с помощью расширенного клиента отдыха Chrome, я смогу получить читаемые символы. Но необработанный вывод в расширенном клиенте отдыха имеет те же нечитаемые символы.

С уважением, -Ласит.


person lsc    schedule 29.12.2013    source источник


Ответы (1)


Вам нужно преобразовать их в удобочитаемую строку из вашего кода. Вы можете использовать что-то вроде ниже:

String unicode = "\u0db8\u0dad\u0dca \u0d9a\u0dd4\u0da9\u0dd4";
String string = new String(unicode.getBytes("UTF-8"), "UTF-8");
System.out.println(string);
person Sabuj Hassan    schedule 29.12.2013
comment
Спасибо за ответ. Здесь проблема заключается в вызове rest api get string, например මත්.. Итак, java-представление этого, например, \ම\ත\්.. . Например, если у вас есть текстовый файл с මත්.. как вы можете прочитать его из java-программы и извлечь из него читаемые символы? BufferedReader br = new BufferedReader(new FileReader("C:\\Lasith\\testfile.txt")); String sCurrentLine; while ((sCurrentLine = br.readLine()) != null) { println(sCurrentLine); String string = new String(sCurrentLine.getBytes("UTF-8"), "UTF-8"); println(string); } - person lsc; 01.01.2014
comment
Да, что-то вроде этого должно уметь читать текст из файла и печатать. Просто убедитесь, что ваша консоль имеет правильную кодировку для отображения текста Unicode. - person Sabuj Hassan; 01.01.2014