php - remove - strip_tags wordpress
Obteniendo â € ™ en lugar de un apóstrofe('') en PHP (13)
Asegúrese de que su encabezado html especifique utf8
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
Eso usualmente hace el truco para mí (obviamente si el contenido es utf8).
No es necesario convertir a entidades html si configura el tipo de contenido.
He intentado convertir el texto a o desde utf8, que no parece ayudar.
Me estoy poniendo:
"It’s Getting the Best of Me"
Debería ser:
"It’s Getting the Best of Me"
Estoy obteniendo estos datos de esta url.
Miré el enlace y me parece a UTF-8. es decir, en Firefox, si selecciona Ver, Codificación de caracteres, UTF-8, aparecerá correctamente.
Por lo tanto, solo necesita descubrir cómo obtener su código PHP para procesarlo como UTF-8. ¡Buena suerte!
Para fopen
y file_put_contents
, esto funcionará:
str_replace("’", "''", htmlspecialchars_decode(mb_convert_encoding($string_to_be_fixed, "HTML-ENTITIES", "UTF-8")));
Para convertir a entidades HTML:
<?php
echo mb_convert_encoding(
file_get_contents(''http://www.tvrage.com/quickinfo.php?show=Surviver&ep=20x02&exact=0''),
"HTML-ENTITIES",
"UTF-8"
);
?>
Consulte la documentación para mb_convert_encoding para ver más opciones de codificación.
Parece que está usando funciones de cadena estándar en un carácter UTF8 ('') que no existe en ISO 8859-1 . Compruebe que está utilizando la configuración y las funciones de PHP compatibles con Unicode . Véase también las funciones de cadena multibyte .
Sé que la pregunta fue respondida, pero establecer una metaetiqueta no ayudó en mi caso y la respuesta seleccionada no fue lo suficientemente clara, así que quería proporcionar una respuesta más simple.
Así que para mantenerlo simple, almacene la cadena en una variable y procese de esta manera
$TVrageGiberish = "It’s Getting the Best of Me";
$notGiberish = mb_convert_encoding($TVrageGiberish, "HTML-ENTITIES", ''UTF-8'');
echo $notGiberish;
Lo que debería devolver lo que querías. It''s Getting the Best of Me
Si está analizando algo, puede realizar la conversión mientras asigna valores a una variable como esta, donde $TVrage
es una matriz con todos los valores, XML en este ejemplo de una fuente que tiene la etiqueta "Título" que puede contener caracteres especiales como ‘
o ’
.
$cleanedTitle = mb_convert_encoding($TVrage->title, "HTML-ENTITIES", ''UTF-8'');
Si está aquí porque está experimentando problemas con los caracteres no deseados en su sitio de WordPress, intente esto:
Abre
wp-config.php
Comentario fuera
define(''DB_CHARSET'', ''utf8'')
ydefine(''DB_COLLATE'', '''')
/** MySQL hostname */ define(''DB_HOST'', ''localhost''); /** Database Charset to use in creating database tables. */ //define(''DB_CHARSET'', ''utf8''); /** The Database Collate type. Don''t change this if in doubt. */ //define(''DB_COLLATE'', '''');
Si todo parece no funcionar, esta podría ser tu mejor solución.
<?php
$content="It’s Getting the Best of Me";
$content = str_replace("’", "'", $content);
echo $content;
?>
== o ==
<?php
$content="It’s Getting the Best of Me";
$content = str_replace("’", "''", $content);
echo $content;
?>
Solo prueba esto
Si $text
contiene caracteres extraños haga esto:
$mytext = mb_convert_encoding($text, "HTML-ENTITIES", ''UTF-8'');
y has terminado ..
Tu contenido está bien; El problema es con los encabezados que el servidor está enviando:
Connection:Keep-Alive
Content-Length:502
Content-Type:text/html
Date:Thu, 18 Feb 2010 20:45:32 GMT
Keep-Alive:timeout=1, max=25
Server:Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.7 with Suhosin-Patch
X-Powered-By:PHP/5.2.4-2ubuntu5.7
Tipo de contenido debe configurarse en Content-type: text/plain; charset=utf-8
Content-type: text/plain; charset=utf-8
, porque esta página no es HTML y usa la codificación utf-8. Chromium en Mac adivina ISO-8859-1 y muestra los caracteres que está describiendo.
Si no tiene el control del sitio, especifique la codificación como UTF-8 para cualquier función que use para recuperar el contenido. No estoy lo suficientemente familiarizado con PHP para saber exactamente cómo.
Tuvimos éxito yendo en la otra dirección usando esto:
mb_convert_encoding($text, "HTML-ENTITIES", "ISO-8859-1");
prueba esto :
html_entity_decode(mb_convert_encoding(stripslashes($text), "HTML-ENTITIES", ''UTF-8''))
utilizar esta
<meta http-equiv="Content-Type" content="text/html; charset=utf8_unicode_ci" />
en lugar de esto
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />