0

我正在使用 PHP(5.3.5,Ubuntu)开发一个网站,所有内容都是西班牙语。当文本不适合为其指定的空间时,我想剪切文本。我在要执行此操作的 php 文件中有以下元标记:<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />.

文本来自 MySQL 数据库,其中 charset 为latin1和排序规则 latin1_spanish_ci。我正在尝试使用 mb_substr() 函数剪切文本。但它不能正常工作。例如,假设我想将Short Psicodélico 剪切Short Psicodéli,函数将是:

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

但结果是这样的:Short Psicode&ea。带有变音符号的 e 被转换为&ea,我不知道为什么。我认为这与字符编码有关,但我不知道具体如何。如果我不使用此功能,字符会按应有的方式显示,而不是Short Psicode&ea它显示Short Psicodelico

4

1 回答 1

2

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

于 2011-11-09T19:41:18.530 回答