0

我正在使用 http 调用在任何用户的墙上发布有关我的应用程序的信息。我这样做:

_url = "https://graph.facebook.com/" + user_id + "/feed?message=MSG";

_url += "&access_token=" + access_token;

_url += "&picture=" + fb_app_url + "fb_icon.png";

_url += "&name=" + String_ToUrl("MY GAMES");

_url += "&link=" + "http://www.nlkgames.com";

_url += "&description=String_ToUrl("descripción with accent")"

_url += "&method=post";

http.URL_CALL(_url);

此方法在用户的墙上发布正确的信息,但重音由带有问号的菱形显示。我不知道如何使它与口音一起使用。

String_ToUrl 将以这种方式编码字符串: "descripción with Accent" = "descripci%E9n+with+accent"

我的失败是什么?为什么用户的 facebook 的墙无法识别 urlencoded?

4

3 回答 3

0

您的String_ToUrl函数不会以识别 unicode 的方式对 URL 进行编码。

ó(又名'LATIN SMALL LETTER O WITH ACUTE' (U+00F3))应该变成%C3%B3URL 编码形式,而不是%F3(在你的情况下,你表示它变成%E9了实际上的é字符)。

descripción -> descripci%C3%B3n

一定要使用正确的(和 unicode 感知的)方式来编码你的参数,例如在 JavaScript 中encodeURIComponent应该使用......

于 2012-05-29T18:04:12.593 回答
0

如果您只是按原样发布描述,而不是将其编码为 URL,会发生什么?

如果这不起作用,请尝试使用 HTML 实体转换字符串,然后对描述进行 URL 编码。

于 2012-05-28T16:23:57.650 回答
0

您也可以尝试将这些字母替换为 ASCII 表示形式(有点像 \u123)——当有这样一个特殊字符时,这将是 Graph API 为您提供的(在我的情况下,它将是德语字母表中的 äöü)

于 2012-05-28T20:39:16.137 回答