Ayuda urgente con utf-8 y iso-8859-1 estan juntos en la misma bd php

  • Autor Autor blogers
  • Fecha de inicio Fecha de inicio
B

blogers

Pi
SEO
Hola colegas phperos, vengo a pedir una ayuda por mas que busque en internet no di con bola, tengo un script que me vendieron pero yo ya tengo una bd lista para correrlo, mi problema surge que en la bd tengo titulos y descripciones de registros en utf-8 y iso-8859-1, la pagina en si es iso-8859-1 por lo que va bien con el contenido estatico.

Mi gran problema surge que en la bd estan registrados en utf-8 y iso-8859-1, entoces al mostrar el contenido pues si esta en iso-8859-1 se va mostrar bien porque corre en iso la web entera , pero la mayoria de los registros estan en UTF 8 y tengo este codigo para que los registros ya sean titulo o descripciones decodifique en UTF, pero mi gran problema es que si un user hace un contenido en el script se registra en la bd en iso-8859-1.

Yo queria ver si me ayudan de alguna manera con el codigo de abajo para hacer que si bienen en utf 8 los decodifique sin alterar los que estan en iso-8859-1, por que por ejemplo el codigo de abajo esta parte tiene UTF 8 en el titulo es un ejemplo
echo stripslashes(utf8_decode($arrPosting["title"]))
pero como ayi le esta diciendo que decodifique unicamente los que tiene UTF 8 pero que pasa con los iso-8859-1 pues no los decodifica.

Se los agradesco de ante mano si me ayudan


PHP:
<a style="text-decoration:none" href="<?php echo $strLink;?>">
					<span class="job_listing_title"><?php $arrPosting['title'] = mb_check_encoding($arrPosting['title']) ? ($arrPosting['title']) : ($arrPostingx['title']);
                    echo stripslashes(utf8_decode($arrPosting["title"]));?></span>
				</a>
 
Bueno estoy aprendiendo php y justo estoy en esos temas, mejor sería que manejes una sola codificación, en este caso utf8 y olvidate de iso-8859-1, luego poner en la plantilla web un meta con charset=utf-8".

Entonces tienes que detectar en que codificación esta la cadena, para luego convertirlo a utf8 de ser el caso. Para detectar podrías guiarte de esto

$str1 = 'ñandú';
$str2 = 'nandu';
$ary[] = "ASCII";
$ary[] = "UTF-8";

echo mb_detect_encoding($str1, $ary);
echo "<br/>";
echo mb_detect_encoding($str2, $ary);
 
Bueno estoy aprendiendo php y justo estoy en esos temas, mejor sería que manejes una sola codificación, en este caso utf8 y olvidate de iso-8859-1, luego poner en la plantilla web un meta con charset=utf-8".

Entonces tienes que detectar en que codificación esta la cadena, para luego convertirlo a utf8 de ser el caso. Para detectar podrías guiarte de esto

$str1 = 'ñandú';
$str2 = 'nandu';
$ary[] = "ASCII";
$ary[] = "UTF-8";

echo mb_detect_encoding($str1, $ary);
echo "<br/>";
echo mb_detect_encoding($str2, $ary);
Si pongo utf8 global en charset en el head todo se ponen en tildes pero el show esta en la bd estan en iso y utf
 
Atrás
Arriba