Estoy desarrollando un CMS para un cliente y necesita editar cosas y usar caracteres especiales como ç
y ®
. Sin embargo, no quiero que tenga que ingresar los códigos de caracteres como ®
. ¿Alguien sabe una buena manera de convertir automáticamente esos caracteres usando PHP?Convierta caracteres especiales en códigos de caracteres HTML
Respuesta
Puede utilizar htmlentities() para hacer eso.
php -r 'echo htmlentities("®ç", ENT_COMPAT, "UTF-8"), "\n";'
®ç
Para activar entidades volver al texto legible, utilice html_entity_decode():
php -r 'echo html_entity_decode("®ç", ENT_COMPAT, "UTF-8"), "\n";'
®ç
Si no se está usando Unicode, omite el nombre del juego de caracteres o hacerle el juego de caracteres correcto.
+1 para especificar la codificación. –
Fantástica respuesta que resuelve un problema con el que he luchado durante algunos años. Vale la pena señalar que algunas de las otras respuestas que mencionan copiar pegar o codificar con fuerza la versión ALT KeyCode del símbolo no funcionarán cuando mueva su código del sistema operativo al sistema operativo. –
utilizar Unicode, y le muestran cómo copiar & pasta de mapa de caracteres :-)
-1. ¿Qué tipo de respuesta es esta? –
@Alin No es * una * mala respuesta, diría - si el cliente ya está usando caracteres como ç y ®, entonces usar UTF-8, por ejemplo, para la entrada, almacenamiento y salida del CMS permitirá que elimine la necesidad de las entidades HTML. Al igual que ocurre en esta página web, por ejemplo, donde escribí "®", lo envié al sitio y el sitio lo muestra como "®": busque el código fuente de esta página y ganó No veo una entidad HTML allí, solo el personaje real y real. –
@MattGibson Un problema es si usa el control de código fuente y mueve el código hacia atrás y hacia adelante entre los sistemas operativos basados en Unix y los sistemas operativos de Windows. Aprendí por las malas que los códigos de tecla ALT no funcionan de la manera que usted quiere en todos los sistemas operativos. –
Lo más fácil sería utilizar UTF-8 desde el comienzo.
Pero también se puede convertir automáticamente los caracteres con DOM:
$dom = new DOMDocument;
$dom->appendChild(new DOMText('© oui içi » '));
echo $dom->saveHtml();
salidas
© oui içi »
Eche un vistazo a la función htmlentities. Esto toma una cadena y convierte caracteres componentes en sus entidades HTML. Puede especificar que la codificación de la cadena sea coherente con la entrada del usuario.
¡Gracias! Funciona :) –
- 1. caracteres especiales en id de etiquetas html
- 2. Escape de caracteres HTML especiales en Python
- 3. Caracteres especiales en NSString de HTML
- 4. ¿Cómo escapar caracteres especiales HTML en Java?
- 5. Cómo codificar caracteres especiales en contenido html
- 6. ¿Cómo convertir caracteres especiales en entidades html?
- 7. caracteres especiales de mailto
- 8. Javascript/jQuery - convertir caracteres html especiales
- 9. caracteres especiales en sed
- 10. Caracteres especiales en XML
- 11. reemplazar caracteres especiales
- 12. Caracteres especiales en PHP/MySQL
- 13. Cómo convertir caracteres especiales a caracteres normales?
- 14. sustituir caracteres especiales
- 15. ajax publicar caracteres especiales
- 16. NSString Length - Caracteres especiales
- 17. Android Sqlite Caracteres especiales
- 18. caracteres especiales preg_match
- 19. NSURL con caracteres especiales
- 20. Lucene y caracteres especiales
- 21. Character Set Caracteres especiales
- 22. Regex eliminar caracteres especiales
- 23. Escapar caracteres especiales en SQL
- 24. Imprimir caracteres especiales en php
- 25. file_get_contents - caracteres especiales en URL
- 26. Buscando caracteres especiales en Google
- 27. Caracteres especiales en corchetes recreados
- 28. Escapar caracteres especiales en cmd
- 29. UnicodeWarning: caracteres especiales en Tkinter
- 30. jQuery ajax caracteres especiales problemas
Err. Solo asegúrese de que la codificación de caracteres sea consistente (es decir, solo use UTF-8 en todo), y no necesita convertir esos caracteres para que se vean perfectamente. – Quentin