¿Cómo puedo comprobar si un carácter es un carácter Unicode o no con PHP?Comprobar unicode en PHP
Respuesta
En realidad, usted ni siquiera necesita la extensión mb_string:
if (strlen($string) != strlen(utf8_decode($string)))
{
echo 'is unicode';
}
y para encontrar el punto de un carácter determinado código:
$ord = unpack('N', mb_convert_encoding($string, 'UCS-4BE', 'UTF-8'));
echo $ord[1];
thanks eyeze !!!! este código worx .... muchas gracias .. – Orion
@Raveesh: Si mi respuesta resolvió su problema, puede marcarlo como aceptado. =) –
funciona perfectamente con mi Unicode Árabe para determinar RTL, Gracias :) –
Te sueles hacer algo como:
if (mb_strlen($ch) != strlen($ch)) ...
debo añadir: cuenta las strlen bytes, mientras que mb_strlen cuenta caracteres (manejo apropiado de caracteres de varios bytes, que supongo que es lo que realmente está hablando en lugar de unicode - unicode como también cubre más de cien caracteres de un solo byte indistinguibles de ASCII)
hola searlea, gracias por su rápida respuesta! Esto es exactamente lo que estaba buscando. – Orion
ive comprobé esto y obtuve el resultado siguiente Php $ ch = 'രവീഷ്'; // mi nombre en Malayalam echo mb_strlen ($ ch). "
"; echo strlen ($ ch). "
"; if (mb_strlen ($ ch)!= strlen ($ ch)) \t echo "Unicode"; else \t echo "No Unicode"; ?> su dando el resultado no Unicode lo que podría ser el problema? –
Orion
¡Este código parece funcionar! ... y sería útil si pudiera ayudarme a encontrar una función para obtener el punto de código de un carácter unicode? – Orion
vamos a $ s ser "somestring", entonces si (mb_check_encoding ($ s, "UTF-8")) entonces {la cadena es unicode} else {no es unicode} –
Un caracter unicode SIEMPRE tendrá el conjunto de bytes más significativo sin importar el valor del carácter o si es parte de un carácter unicode de múltiples bytes o qué. No puede simplemente verificar si la cadena tiene más bytes que caracteres, ya que algunos caracteres Unicode son solo de un byte. Si cualquier carácter en el valor de un byte de cadena es mayor que 127, esa cadena contiene unicode.
¿cómo puedo obtener el punto de código de un unicode char ? – Orion
Esto debería ayudar: http://www.joelonsoftware.com/articles/Unicode.html –
Gracias chicos .. Finalmente me dieron la respuesta i estaba buscando .
Tengo un archivo de inclusión en http://hsivonen.iki.fi/php-utf8/.
El siguiente código resuelto mi problema:
<?php
require_once("utf8.inc");
/*** create a unicode string ***/
$s = "حملة إلا صلاتي";
$out = utf8ToUnicode($s);
for ($i=0;$i < strlen($s);$i++)
echo dechex($out[$i]).".";
?>
cadenas en PHP son bytestreams - no streams de caracteres. En realidad no puedes tener cadenas unicode en PHP; Necesitas codificar tus personajes con alguna codificación. Si desea cubrir todo el rango de Unicode, UTF-8 es la opción más obvia.
Si usted desea conseguir el punto de código de una corriente de bytes codificados UTF-8, puede utilizar esta biblioteca: http://hsivonen.iki.fi/php-utf8/
Sin embargo, me pregunto qué es exactamente lo que necesita esto? Lo más probable es que puedas resolver todos tus problemas simplemente usando utf-8.
Hola chicos ... Mi simple requerimiento era encontrar el código de la secuencia de bytes y lo obtuve a través de la biblioteca de http: //hsivonen.iki. fi/php-utf8/!! muchas gracias! – Orion
Todavía no veo realmente cuál fue el problema que estabas resolviendo en primer lugar. Estoy bastante seguro de que estás cavando un agujero para ti. – troelskn
- 1. Unicode en PHP?
- 2. PHP comprobar NULL
- 3. Función PHP imagettftext() y unicode
- 4. PHP construir una cadena Unicode?
- 5. Detección de caracteres " " desconocida Unicode en PHP
- 6. PHP intervalo de fechas Comprobar
- 7. Comprobar longitud de cadena En PHP
- 8. PHP Comprobar MySQL Última fila
- 9. PHP-GD: tratar con caracteres Unicode
- 10. Recortar espacios en blanco unicode en PHP 5.2
- 11. ¿Cómo comprobar si PHP mail() está habilitado?
- 12. ¿Cómo comprobar si cronjob existe con PHP?
- 13. Algoritmo de clasificación natural en PHP con soporte para Unicode?
- 14. Cómo comprobar Foto DPI con PHP
- 15. php: comprobar si existe una ruta?
- 16. ¿Comprobar PHP si las matrices son idénticas?
- 17. Comprobar si una cadena comienza con un número en PHP
- 18. ¿Cómo comprobar si un método es estático en PHP?
- 19. ¿Cómo comprobar si un usuario ha iniciado sesión en php?
- 20. ¿Cómo comprobar si el objeto JSON está vacío en PHP?
- 21. Comprobar si la clase tiene método en PHP
- 22. php comprobar si se ha hecho clic en el enlace
- 23. Cómo comprobar si una variable es primitiva en PHP
- 24. ¿Hay alguna forma de comprobar si el texto Unicode está en un idioma determinado?
- 25. ¿Cómo comprobar si el carácter Unicode tiene signos diacríticos en .Net?
- 26. Insertar caracteres Unicode con PHP -> ODBC -> MS SQL?
- 27. Cómo codificar URL contiene caracteres Unicode con PHP
- 28. Función de PHP para convertir unicode a caracteres especiales?
- 29. cadena Unicode en XML
- 30. Impresión Unicode en vim
Quizás desee aclarar qué quiere decir exactamente con Unicode en este contexto. Dudo que encuentres caracteres no definidos en Unicode, por lo que tu cheque podría simplemente devolver 'verdadero' en todos los casos. – Joey
quiero obtener el punto de código de un charecter unicode. cómo se puede hacer. – Orion
@ Rössel: Creo que quiere saber si una cadena contiene caracteres distintos de ASCII. –