【问题标题】:Facebook post to wall £ shows up as special characterFacebook贴在墙上£显示为特殊字符
【发布时间】:2013-03-27 07:25:57
【问题描述】:

我正在尝试向其中包含 £ 符号的 facebook 提要/墙/时间线发布消息。

我试过了:

mb_internal_encoding("UTF-8");
$message = "TEST: £ £ £";

和设置:

mb_internal_encoding("UTF-8");
mb_http_output( "UTF-8" );

运气不好……

PHP 文档保存为 UTF8。

有人知道如何通过 php 脚本将 £ 符号贴到墙上吗?发布机制运行良好。

所以 facebook 获得的数组中的值之一是:

$message = "TEST: £ £ £";
$DataArray["message"] = $message;

FB命令是:

$result = $facebook->api("/me/feed", "post", $DataArray);

结果是带有 ?在里面。 � 对于其他人刚刚写出的 £ 符号。

【问题讨论】:

  • 钻石形的?在里面。 �
  • 您说您已将字符编码为 UTF-8,您是否发送 charset 标头以便接收系统知道它是 UTF-8?
  • 你向 facebook 发送一个数组。如果您可以使用标题对数组进行编码,那对我来说就是新闻...

标签: php facebook facebook-graph-api special-characters


【解决方案1】:

这通常表示无效的 UTF-8 字符。

我敢打赌,您的 PHP 文件是 ISO-8859-1 编码的。井号在 ISO-8859-1 中的代码点与在 UTF-8 中不同。在 UTF-8 上下文中使用 PHP 文件中的数据时,井号无效。

使用 UTF-8 编码保存 PHP 文件 - 这通常可以在编辑器的“另存为”对话框中设置。

【讨论】:

  • 已经保存为 UTF8。这是我的代码编辑器中的默认编码。
【解决方案2】:

找到原因了。我正在使用 ScriptFTP 批量上传文件,Filezilla 对其进行了整理。它一定是在上传过程中改变了格式或其他东西。

【讨论】:

  • 该文件可能需要以二进制模式上传。 Filezilla 必须自动检测要上传的模式。我知道我最近在使用 Filezilla 上传 UCS-2 Little Endian 文件时遇到了问题,不得不手动设置 .txt 文件以二进制模式上传。很高兴您解决了问题。
【解决方案3】:

我也遇到过类似的问题,但在我的情况下,我的 php 文件是用 ANSI 编码的,我只需要将文件编码更改为 UTF-8

如果特殊字符无效,请记住这样做,因此请记住在更改文件编码后编辑这些字符

我帮助过你或其他人xD

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多