PHP:在不知道原始字符集的情况下将任何字符串转换为UTF-8,或者至少尝试
我有一个应用程序来处理来自世界各地的客户,当然,我希望进入我数据库中的所有内容都采用UTF-8编码。
对我来说,主要问题是我不知道任何字符串的源将是什么编码 - 它可能来自文本框(仅当用户实际提交表单时才有用),或者它可能来自上传的文本文件,因此我真的无法控制输入。<form accept-charset="utf-8">
我需要的是一个函数或类,以确保进入我数据库中的内容尽可能地进行UTF-8编码。我试过,但这有问题(如果输入是“未婚妻”,则返回“未婚妻”)。我尝试了很多东西=/iconv(mb_detect_encoding($text), "UTF-8", $text);
对于文件上传,我喜欢要求最终用户指定他们使用的编码,并向他们展示输出外观的预览,但这无助于对抗讨厌的黑客(实际上,这可能会使他们的生活更轻松一些)。
我已经阅读了有关该主题的其他Stack Overflow问题,但它们似乎都有细微的差异,例如“我需要解析RSS提要”或“我从网站上抓取数据”(或者,实际上,“你不能”)。
但一定有一些东西至少要好好尝试!