sirve que para numeral extendido ejemplos codigos codigo caracteres abecedario php string

php - que - ¿Cómo detecto caracteres no ASCII en una cadena?



codigo ascii pdf (9)

Si tengo una cadena PHP, ¿cómo puedo determinar si contiene al menos un carácter no ASCII o no, de una manera eficiente? Y por carácter no ASCII, me refiero a cualquier carácter que no sea parte de esta tabla, http://www.asciitable.com/ , posiciones 32 a 126 inclusive.

Así que no solo tiene que ser parte de la tabla ASCII, sino que también tiene que ser imprimible. Quiero detectar una cadena que contiene al menos un carácter que no cumple con estas especificaciones (ya sea un ASCII no imprimible o un carácter completamente diferente, como un carácter Unicode que no forma parte de esa tabla).


Entonces el método más rápido es en realidad: mb_check_encoding , uso de muestra:

return mb_check_encoding($str, ''ASCII'');



Le sugiero que busque en utf8_encode o utf8_decode en el manual de PHP:

http://www.php.net/manual/en/function.utf8-encode.php

Mire los ejemplos a continuación, ya que puede tener algo allí que lo lleve a la dirección correcta si no encuentra lo que está buscando.


Me pareció más útil detectar si algún personaje cae fuera de la lista

if(preg_match(''/[^/x20-/x7f]/'', $string))




Probar: ( Source )

function is_ascii( $string = '''' ) { return ( bool ) ! preg_match( ''/[//x80-//xff]+/'' , $string ); }

Aunque, todas las respuestas anteriores son correctas, pero dependiendo de la entrada, estas soluciones pueden dar respuestas incorrectas. Vea la última sección en Source .


Puede usar mb_detect_encoding y verificar ASCII:

mb_detect_encoding($str, ''ASCII'', true)

Esto devolverá false si $str contiene al menos un carácter no ASCI (valor de byte> 0x7F).


Si no desea tratar con Regex en javascript puede hacerlo

detectUf8 : function(s) { var utf8=s.split('''').filter(function(C) { return C.charCodeAt(0)>127; }) return (utf8.join('''').length>0); },