相同的字符串表示形式会导致不同的结果

时间:2018-09-28 15:17:34

标签: java facebook

我目前面临一个让我发疯的问题:

以下代码段是包装部分,用于向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)进入函数,表情符号都由5535756613的char值表示(对于{{1}是正确的) })每次,并且字符串UTF-16在调试器中看起来相同,之后没有其他区别。但是,从数据库中读取帖子时,Facebook仅显示message,而直接通过REST API发布时,Facebook仅显示正确的表情符号。

我在这里监督什么?显然这似乎是某种字符集问题,但是由于字符串?每次都具有相同的值,因此它不能做任何进一步的处理了吗?

0 个答案:

没有答案