我的数据一直存在问题,像
之类的奇数字符会出现在我们的数据库中,导致所有内容在某些时候断线。我需要建立一个只允许特定字符通过的系统,并忽略所有可以从Microsoft Office粘贴的疯狂事物。是否有这样的内置,或者我应该从头开始?
答案 0 :(得分:2)
好吧,我不是角色编码的专家,但被告知这个具体问题以及为什么要得到它。如上面的评论中所述,您必须验证所有字符集是否匹配。
然而,这就是为什么你得到那个特定的字符集:
“特定的字符序列是3字节的UTF-8代码 您在Firefox中看到的[?] [未知]字符。你得到那个 在表单中显示一个1字节的Windows-1252字符作为UTF-8,然后 将其提交回数据库。浏览器发送3字节的UTF-8 在它的位置“
了解字符集是一项挑战,我强烈建议您阅读有关此主题的更多信息。这是一个好的开始:Character Sets / Character Encoding Issues
答案 1 :(得分:0)
嗯,你可以通过例如删除所有这些字符$text = preg_replace('@[^\d\w\s,.;:]@', '', $text);
其中[^\d\w\s,.;:]
是要保留的一组字符(\ d \ w \ s表示所有数字,字母和空格)。用你想要保留的其他字符修改集合。
然而,这是错误的做法。您应该确保整个应用程序从头开始使用和处理UTF-8,以便您可以正确地存储和处理这些字符。在这个时代制作一个ASCII或ISO拉丁语网站是很奇怪的,并且由于切断了人们实际使用的字符而导致数据丢失......