Eso es problema de codificación de carácteres. Eso es el viejo dilema de los programadores web. ISO-8859-1 (latin Español) o UTF-8 (sin o con BOM).
Desconozco en que sistema estás usando tu foro (ISO o UTF-8). Lo mejor, es que para poder prevenir este tipo de problemas, instales UTF-8. Sin embargo, el problema radica en que, a la hora de sacar las traducciones en distintos foros, siempre sacan antes el sistema ANSI /ISO que el de UTF-8.
Paraque lo entiendas de una forma sencilla.
Con Iso podemos utilizar:
<Así>
Con utf-8:
<Así>
Cuando usas el primer sistema, y la web a optado por el segundo, entonces te sale esto (más o menos):
<As�>
El problema se soluciona, si tienes web nueva, volviendo a reinstalar el sistema de uno a otro (de iso a utf-8).
Ahora, claro está, si ya tienes muchos mensajes, no vas a volver a reinstalar todo. Lo que debes de intentar hacer es reconvertir esos mensajes de un sistema a otro (bien descargando toda la base de datos y haciéndolo con un editor de textos, funciona), o bien añadiendo código PHP en tu foro (creo que estará lejos de tus opciones) para reconvertir los posts de un sistema al otro.
Me acuerdo cuando al principio tuve una de esas viejas versiones del SMF (versión 1.0.7 o algo así) que me apareció algo así, y puede solucionar el asunto bajando las bases de datos (archivo .SQL), abriéndolas con un editor de textos y gprobando opciones como "guardar como" en vez de texto enriquecido, texto dos, texto ansi, texto unix, etc... y vi como milagrósamente el texto con sus acentos y símbolos raros de golpe se ponían bien. Truquillos del viejo.
Para los que opten por el segundo sistema, hay dos formas:
1. Usando PHP htmlentities y specialchars ( no siempre funciona).
2. Usando esta función PHP (cosecha propia, infalible).
function convert_ISO_to_UTF8($v) {
$v = preg_replace('/[^!-%\x27-;=?-~<>&\x09\x0a\x0d\x0B ]/e', '"&#".ord("$0").chr(59)', $v);
$k = preg_replace('/Ã&#([0-9]+);/e', '"&#".((int) \\1 + 64).";"', $v);
return $k;
}
Llamamos a la función por ejemplo:
$frase_a_traducir = convert_ISO_to_UTF8($frase_a_traducir);
Esos simbolitos desaparecen.
Por cierto, en este foro también los he visto (crítica constructiva).