特殊字符问题

时间:2010-09-30 01:09:38

标签: php preg-replace special-characters

当我从数据库中显示内容时,我得到了这个:

有些人会有工作。其他人会想要一个。他们是我的人民,他们是我的客户,他们被剥夺了权利。

用户通过textarea用tinyMCE输入了该文本。如何将句子中的特殊字符(使用preg_replace())替换为''除字符外:<>?

2 个答案:

答案 0 :(得分:1)

This article完全值得一读。处理UTF-8字符是我们在某些时候都要经历的事情。诀窍似乎是在他们进入数据库或修复数据库之前捕获它们,这样当它们进入时它们就不会被破坏。一旦他们在那里,虽然稍微有些困难。

答案 1 :(得分:0)

正如Chuck上面提到的,这是数据库问题。除非您只希望显示非Unicode,即拉丁字符,否则preg_replace是要走的路。您需要足够好地了解字符集以过滤掉您不想要的内容。

但是如果你只是希望一切都很好地显示,即没有垃圾字符,那么改变db的相应部分以接受utf-8。

e.g。如果您使用的是 mySQL ,请尝试更改字段和表格编码,以便能够接受UTF-8。默认值为 latin1_general_ci - 尝试将其更改为 utf8_general_ci 。希望这能解释我的观点。