Одинаковое представление строки приводит к другому результату - PullRequest
0 голосов
/ 28 сентября 2018

В настоящее время я сталкиваюсь с проблемой, которая сводит меня с ума:

Следующий фрагмент кода является частью обертки для отправки запроса в Facebook для создания нового сообщения.Это работает отлично для непосредственно отправленных и не запланированных сообщений в настоящее время.Я добавил char[] и chars для целей отладки.

public GenericResponse createNewPost(final String accessToken, final String target, final String message)
{
    char[] messageRawBytes = message.toCharArray();
    int char1 = (int) messageRawBytes[0];
    int char2 = (int) messageRawBytes[1];
    final String URL = SystemParameters.FB_API_BASE_URL + target + "/feed?access_token=" + accessToken;
    final Map<String, String> params = new TreeMap<>();
    params.put("message", message);
    return new PostRequest(URL, params).send();
}

Каждый раз (из базы данных или непосредственно из REST API) он входит в функцию, Emoji represented представляетсязначения char 55357 и 56613 (что правильно для UTF-16) каждый раз, и String message выглядит одинаково в отладчике, и после этого нет другой разницы.Тем не менее, Facebook отображает ? только тогда, когда сообщение было прочитано из базы данных, и отображает только надлежащие эмодзи, когда публикуется непосредственно через API REST.

Что я здесь наблюдаю?Это, очевидно, кажется некоторой проблемой с кодировкой, но поскольку строка String message всегда имеет одно и то же значение, она не может быть чем-то еще для дальнейшей обработки, не так ли?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...