最佳答案
我有一个处理来自世界各地的客户端的应用程序,自然,我希望进入我的数据库的所有内容都是 UTF-8编码的。
对我来说,主要的问题是我不知道任何字符串的源代码是什么——它可能来自一个文本框(使用 <form accept-charset="utf-8">
只有在用户实际提交表单时才有用) ,或者它可能来自一个上传的文本文件,所以我真的无法控制输入。
我需要的是一个函数或类,确保进入我的数据库的内容尽可能是 UTF-8编码的。我试过 iconv(mb_detect_encoding($text), "UTF-8", $text);
但是这样有问题(如果输入是“未婚妻”,它会返回“未婚妻”)
对于文件上传,我喜欢要求终端用户指定他们使用的编码,并向他们展示输出的预览,但这并不能帮助对付讨厌的黑客(事实上,它可以使他们的生活更容易一点)。
我已经阅读了关于这个主题的其他 Stack Overflow 问题,但它们似乎都有细微的差别,比如“我需要解析 RSS提要”或“我从网站上获取数据”(或者,实际上,“你不能”)。
但是,必须有一些至少有一个良好的 试试看!