gpt4 book ai didi

php - UTF-8 纠正后出现奇怪的编码问题 "most"

转载 作者:行者123 更新时间:2023-11-29 08:26:17 26 4
gpt4 key购买 nike

好的,我们有一个脚本,它接收发送到 Thunderbird 的电子邮件,将部分消息转换为 html 并将其保存到 MySQL。每个文件、每个写入的部分都设置为 UTF-8。最后,在我的工作结束时,CRM(用 PHP5.3 编写,预期输出 Chrome 和 Firefox),我提取消息以及其他信息并显示类似于 GMail 的内容,但作为我们员工的“任务列表”。

我遇到的问题是,如果您还没有猜到的话,某些客户电子邮件显然使用了不同的编码。因此,某些(不是全部,当然也不是大多数)电子邮件无法正确显示所有字符。

起初,我使用 utf8_encode 来使电子邮件看起来正确,这有助于处理来自数据库的大多数电子邮件,但是,有一些电子邮件会包含错误的字符。

在数据库中,这些“坏撇号”显示为 ,但在 utf8_encode 之后,它们显示为 ??。我尝试过各种编码方式来猜测并根据需要进行更改,但是,这往往会损害绝大多数其他电子邮件。

任何建议,在管道的一端或另一端,我如何让这几封电子邮件与其他所有内容相匹配,或者我如何至少在最后创建一个可能的 preg_replace 过滤器或东西?

更新

看起来,即使是带有坏字符的电子邮件也会根据mb_detect_encoding作为utf-8传递到结束php。这是在任何额外编码之前。 iconv 确实检测到了有问题的问题,但这确实没有办法解决它们,只是在屏幕上显示一个 php 错误框,而不是简单的 FALSE 返回它说它应该给予,所以这似乎也不是解决方案。

最佳答案

问题是您不知道邮件的编码。 utf8_encode 仅从 ISO-8859-1 编码到 UTF-8。所以你可以尝试使用 mb_detect_encoding 获取编码然后使用 iconv 转换为 UTF-8 .

编辑:您还可以尝试读取邮件的Content-Type字符集。

关于php - UTF-8 纠正后出现奇怪的编码问题 "most",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17835129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com