很抱歉我的标题不好,但我什至不知道如何对这个问题进行分类。我知道这与编码有关,但我不确定如何。
我正在做一个 ESP 项目。他们的电子邮件采用 7 位编码,采用 utf-8 字符集(这对我来说没有任何意义)。
附件A:
我通过 API 获取 html 电子邮件文本。然后,我使用 PHP 修改一些文本(通过 str_replace),然后通过 API 发布新的 html。
一切都很好,除了每次发帖时,我都会收到一些奇怪的字符,即每次运行代码时都会添加另一个时髦的字符。
以下是我进行任何更改之前电子邮件中受影响的部分(这是在“查看”模式下,即浏览器如何查看它):
下面是生成版权符号和上面带有“acute”符号的 A 的代码:
© 2012 H
奇怪的是,摆脱上面带有“急性”符号的 A 的唯一方法是删除版权符号......不知何故它们是相关的。
每次我通过 PHP 发布到 API 时,我都会得到一些新的时髦字符,因此:
第 1 篇文章:
第二篇文章:
第三篇文章:
太奇怪了...这是唯一不起作用的部分!请帮助...这让我发疯! :-)
编辑:
这是相关的 PHP:
从 xml 响应中获取 html:
$html = (字符串)$data;
替换一些东西:
$newHTML = str_replace($oldExpiresString, $newExpiresString, $html);
将新的 HTML 放入 xml post 变量中:
$input = ''.$newHTML.'';
URL编码:
$formatted = urlencode($input);
通过curl发布:
$postVariables = 数组( '类型' => urlencode($type), '事件' => urlencode($事件), '输入' => urlencode($输入) );
$rawResponseString = post_url($urlBase, $postVariables); 打印$rawResponseString;
最佳答案
详细说明my comment :
$screwed = '©';
echo html_entity_decode($screwed, ENT_COMPAT, 'ISO-8859-1');
这会返回“©”,将困惑的多单字节 HTML 编码解码回 UTF-8 编码 文本。因此,从这里开始,您只需将文本视为 UTF-8 编码(现在就是这样)。
关于php - utf-8字符集,7bit编码,PHP添加奇怪字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061302/