【发布时间】:2013-02-25 06:31:12
【问题描述】:
对不起,我的标题不是更好,但我什至不确定如何对这个问题进行分类。我知道这与编码有关,但我不确定如何。
我正在为 ESP 做一个项目。他们的电子邮件是 7 位编码的,带有 utf-8 字符集(这对我来说真的没有意义)。
展览 A:
我通过 API 获取 html 电子邮件文本。然后我使用 PHP 修改一些文本(通过 str_replace),然后通过 API 发布新的 html。
一切都很好,除了每次我发帖时,我都会得到一些奇怪的字符,即每次我运行代码时都会添加另一个时髦的字符。
在我进行任何更改之前,这是电子邮件中受影响的部分(这是在“查看”模式下,即浏览器如何看到它):
下面是产生版权符号和上面带有“尖锐”符号的 A 的代码:
© 2012 H
奇怪的是,摆脱上面带有“尖锐”符号的 A 的唯一方法是删除版权符号......不知何故它们是相关的。
每次我通过 PHP 发布到 API 时,我都会得到一些新的时髦字符,因此:
第一篇文章:
第二个帖子:
第三个帖子:
太奇怪了……这是唯一不工作的部分!请帮助......这让我发疯了! :-)
编辑:
这是相关的 PHP:
-
从 xml 响应中获取 html:
$html = (string)$data;
-
替换一些东西:
$newHTML = str_replace($oldExpiresString, $newExpiresString, $html);
-
将新的 HTML 放入 xml post 变量中:
$input = ''.$newHTML.'';
-
URL 编码:
$formatted = urlencode($input);
-
通过 curl 发布:
$postVariables = 数组( 'type' => urlencode($type), '活动' => urlencode($活动), '输入' => urlencode($输入) );
$rawResponseString = post_url($urlBase, $postVariables); 打印 $rawResponseString;
【问题讨论】:
-
您的 PHP 脚本本身是 UTF-8 吗?如果不是,则您传递的是非 UTF8 字符,然后期望服务器了解它是什么。
-
你试过
utf8_decode吗? -
嘿伙计们...我不会对 php 编码做任何事情...我将添加 php...我不确定我应该如何处理 php 以进行正确编码/解码。
-
查看
utf8_encode了解utf8的工作原理。除非您指定 utf8 输出,否则您的输出不会被转换为它,因此需要对其进行解码。 -
仅供参考,我对编码知之甚少,所以你们必须帮助我了解该怎么做...