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