2011-11-09 22 views
0

我正在开发一个PHP的网站(5.3.5,Ubuntu),所有的内容是西班牙语。如果文本不符合指定的空间,我想剪切文本。我在PHP文件以下meta标签,我想这样做:<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />.奇怪的字符出现后,我使用PHP的mb_substr()字符串

文字来自MySQL数据库字符集地方是latin1的和整理latin1_spanish_ci。我试图用mb_substr()函数剪切文本。但它不能正常工作。例如,假设我希望削减短Psicodélico短Psicodéli,该功能将是:

mb_substr('Short Psicodélico', 0, 15, 'ISO-8859-1');

但结果是这样的:短Psicod & EA。带变音符号的e被转换成& ea,我不知道为什么。我认为这与字符编码有关,但我不知道如何。如果我不使用这个功能,那么这些字符应该是他们应该显示的,而不是短Psicod & ea它显示短Psicodélico

回答

2

该文本在数据库中编码为"Short Psicod&eacute;lico"。您将需要scrub您的数据库来删除编码,以及修复您的输入例程,以确保文本不保存到编码数据库。

+0

其实在数据库中我有'ShortPsicodélico',但是我正在将htmlentities()应用于字符串** BEFORE **我剪切了字符串。但是如果你没有提出*&eacute; *,我就不会注意到它。谢谢!现在,我首先剪下了字符串,然后申请了htmlentities(),它效果很棒! =) – ecantu