php - utf-8字符集,7bit编码,PHP添加奇怪字符

标签 php encoding utf-8 7-bit

很抱歉我的标题不好,但我什至不知道如何对这个问题进行分类。我知道这与编码有关,但我不确定如何。

我正在做一个 ESP 项目。他们的电子邮件采用 7 位编码,采用 utf-8 字符集(这对我来说没有任何意义)。

附件A:

encoding settings

我通过 API 获取 html 电子邮件文本。然后,我使用 PHP 修改一些文本(通过 str_replace),然后通过 API 发布新的 html。

一切都很好,除了每次发帖时,我都会收到一些奇怪的字符,即每次运行代码时都会添加另一个时髦的字符。

以下是我进行任何更改之前电子邮件中受影响的部分(这是在“查看”模式下,即浏览器如何查看它):

start

下面是生成版权符号和上面带有“acute”符号的 A 的代码:

                            © 2012 H

奇怪的是,摆脱上面带有“急性”符号的 A 的唯一方法是删除版权符号......不知何故它们是相关的。

每次我通过 PHP 发布到 API 时,我都会得到一些新的时髦字符,因此:

第 1 篇文章:

enter image description here

第二篇文章:

enter image description here

第三篇文章:

enter image description here

太奇怪了...这是唯一不起作用的部分!请帮助...这让我发疯! :-)

编辑:

这是相关的 PHP:

  1. 从 xml 响应中获取 html:

    $html = (字符串)$data;

  2. 替换一些东西:

    $newHTML = str_replace($oldExpiresString, $newExpiresString, $html);

  3. 将新的 HTML 放入 xml post 变量中:

    $input = ''.$newHTML.'';

  4. URL编码:

    $formatted = urlencode($input);

  5. 通过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/

相关文章:

php - 如何将传递的字符串匹配到检查 mysql 数据库的 php 函数

ios - "How to use Codable Protocol for a Networking Layer "

php - Laravel 5 Eloquent 不在数据库中存储特殊字符

python - 为什么 PyCharm 显示无效的 unicode 字符?

php - 没有连接到数据库的 Laravel 模型工厂

php - 如何使用 mySQL PDO 输出数据?

php - 检查一个字符串是否是一个 URL

java - 将 NSData(plist 格式)转换为 Java String

python - 笔记本电脑现在崩溃了 python 脚本已损坏

php - 适用于php的UTF-8解码