对不起,我的头衔不是更好,但我甚至不确定如何对这个问题进行分类。我知道这与编码有关,但我不确定如何。
我正在为ESP做一个项目。他们的电子邮件是7位编码的,带有utf-8字符集(这对我来说真的没有意义)。
图表A:
我通过API获取html电子邮件文本。然后我使用PHP修改一些文本(通过str_replace),然后通过API发布新的html。
一切都很好,除非每次发帖,我都会收到一些奇怪的字符,即每次运行代码时都会添加另一个时髦的角色。
在我进行任何更改之前,这是电子邮件的受影响部分(这是“查看”模式,即浏览器将如何看到它):
以下是产生版权符号的代码和A上面带有“锐”符号的A:
© 2012 H
奇怪的是,除去上面带有“锐”符号的A的唯一方法是删除版权符号......不知何故它们是相关的。
每次我通过PHP发布到API时,我都会得到一些新的时髦角色,因此:
第一篇文章:
第二篇文章:
第3篇帖子:
太奇怪了......这是唯一不起作用的部分!请帮忙......这让我发疯了! : - )
修改
以下是相关的PHP:
从xml响应中获取html:
$ html =(string)$ data;
替换一些东西:
$ newHTML = str_replace($ oldExpiresString,$ newExpiresString,$ html);
将新HTML放入xml帖子变量中:
$ input =''。$ newHTML。'';
URLEncode it:
$ formatted = urlencode($ input);
通过卷曲发布:
$ postVariables = array( 'type'=>进行urlencode($型), 'activity'=>进行urlencode($活动), 'input'=>进行urlencode($输入) );
$ rawResponseString = post_url($ urlBase,$ postVariables); print $ rawResponseString;
答案 0 :(得分:2)
详细说明my comment:
$screwed = '©';
echo html_entity_decode($screwed, ENT_COMPAT, 'ISO-8859-1');
返回“©”,将搞砸的多单字节HTML编码解码回 UTF-8编码文本。所以从这里你只需要将文本视为UTF-8编码(现在就是这样)。