代码之家  ›  专栏  ›  技术社区  ›  MattBelanger

cakephp正在截断一个文本字段,可能与编码有关

  •  2
  • MattBelanger  · 技术社区  · 15 年前

    我想做的是:

    我正在分析接收的电子邮件,并使用它在系统中创建帖子。这几乎完全可行,但还有一些缺陷需要解决。当电子邮件包含某些字符(例如,_它发生在$model->save()调用期间。

    电子邮件不是UTF-8编码的(由于任何用户都可以发送电子邮件,所以我们无法控制传入邮件编码),但数据库是UTF-8。当电子邮件以UTF-8格式输入时,它似乎工作正常。

    有什么建议吗?在试图保存之前是否有转换编码的方法?

    1 回复  |  直到 15 年前
        1
  •  1
  •   Pekka    15 年前

    我的猜测是,当您试图将ISO-8859-1(或其他一些编码)特殊字符插入到UTF-8编码的MySQL表时,数据库阻塞了。

    处理这一问题的唯一正确方法是确定传入电子邮件的编码,并执行 iconv() 关于它。

    我从未处理过传入电子邮件的这个细节,但为了确定UTF-8编码,我认为这是正确的方向: iconv_mime_decode

    您还可以尝试使用 mb_detect_encoding 但据我所知,这是不可靠的。