Foros del Web » Programando para Internet » PHP »

Problema con el caracter grado º

Estas en el tema de Problema con el caracter grado º en el foro de PHP en Foros del Web. Alguien sabe con ese dichoso caracter de grado º al lado del uno del teclado al colocar un echo funciona perfecto pero al meterlo en ...
  #1 (permalink)  
Antiguo 29/09/2010, 15:02
Avatar de tpzurdo  
Fecha de Ingreso: julio-2007
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Problema con el caracter grado º

Alguien sabe con ese dichoso caracter de grado º al lado del uno del teclado al colocar un echo funciona perfecto pero al meterlo en alguna función se pierde y pone el signo de pregunta en un rombo.

Este es el código simplificado

Código PHP:
echo "El 1º imperio"."<br>";
echo 
substr("El 1º imperio"1)."<br>"
Sale esto:
El 1º imperio


Lo probe con muchos charsets latinos y en todos me hace cosas parecidas; también intente cambiar el charset del php.ini y nada...

¿Alguna sugerencia idea etc?
  #2 (permalink)  
Antiguo 29/09/2010, 15:03
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 17 años
Puntos: 14
Respuesta: Problema con el caracter grado º

Prueba poniendo su entidad html que es: &deg;
__________________
My path is lit by my own fire, I only go where I desire
  #3 (permalink)  
Antiguo 29/09/2010, 15:04
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con el caracter grado º

has intentado con especificar el charset de tu documento, headers, <meta/>?

¿has empleado funciones de conversión tipo utf8_encode/decode?

funciones para multi-byte?

de verdad, busca en el foro... ya que se trata de un tema común, investiga!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 29/09/2010, 15:07
Avatar de tpzurdo  
Fecha de Ingreso: julio-2007
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el caracter grado º

Claro eso me serviría si tendría que imprimir pero necesito hacer un substr() de la cadena... entonces.. no me ayuda.

Devolvería:
El 1º imperio
&

Que rápido!!! Muchas gracias pero no funciona...
  #5 (permalink)  
Antiguo 29/09/2010, 15:09
Avatar de tpzurdo  
Fecha de Ingreso: julio-2007
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el caracter grado º

Buscar cualquier cosa con el caracter º se hace muy dificil... creeme que cuando pregunto es porque probé muchas cosas busqué en google, en foros, yahoo preguntas, etc etc.. ... voy a seguir esa pista de utf8_encode... a ver que encuentro...
  #6 (permalink)  
Antiguo 29/09/2010, 15:18
Avatar de tpzurdo  
Fecha de Ingreso: julio-2007
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el caracter grado º

Tampoco funciono esto

Código PHP:
echo substr(utf8_encode("El 1º imperio"), 1)."<br>"
¿Tanto odiara php a ese caracter?
  #7 (permalink)  
Antiguo 29/09/2010, 15:26
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 16 años, 1 mes
Puntos: 175
Respuesta: Problema con el caracter grado º

Bueno, eso de CREEME PROBE TODO, nunca es absoluto, ademas, no entiendo (o entendemos) que es lo que quieres lograr con el GRADO.. de todas maneras

y probaste str_replace?????

Código PHP:
function reemplazo($texto) {




$find = array('á''é''í''ó''ú''ñ''º');

$repl = array('&aacute;''&eacute;''&iacute;''&oacute;''&uacute;''&ntilde;''&deg;');

$texto str_replace ($find$repl$texto);

return 
$texto;


su aplicacion seria muy parecida a:

Código PHP:
$texto "El 1º imperio"."<br />";

echo 
reemplazo($texto);

//o no se si funcionaría:

echo utf8_decode(reemplazo($texto)); 
esto mas bien para que automaticamente se transforme en un caracter HTML legible.. pero aun asi, ignoro si te funcionará debido a que no explicas cual es el objetivo de tu script.. pero al menos espero te sirva de orientacio
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #8 (permalink)  
Antiguo 30/09/2010, 06:56
Avatar de tpzurdo  
Fecha de Ingreso: julio-2007
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el caracter grado º

Funcionó!!! una maravilla... no se me ocurrió hacer eso ... a veces le doy vueltas y vueltas a las cosas... y es mucho más simple (cuestión de lógica)... Muchísimas gracias.

Pongo un pedacito de codigo resumido porque cuando leo un post no me gusta leer códigos muy largos entonces... supongo que a los demás les pasara lo mismo y me compadezco de los que saben más. Es un programa muy pavo para que al escribir una cadena te devuelva el macro correspondiente es decir si pongo \ tiene que interpretar alt+º ese era mi tema.

Repito!
Muchas Gracias +Karma
  #9 (permalink)  
Antiguo 30/09/2010, 07:13
Avatar de tpzurdo  
Fecha de Ingreso: julio-2007
Mensajes: 83
Antigüedad: 17 años, 4 meses
Puntos: 0
Respuesta: Problema con el caracter grado º

Claro el problema es que al seleccionar un caracter el problema persiste por ejemplo si pongo

Código PHP:
echo utf8_decode(reemplazo($texto{4})); 
me devuelve de nuevo ese odioso signo de pregunta en lugar de mi hermoso º. Y una vez que mi caracter se convirtió en signo de pregunta no hay replace que lo pueda salvar.

No entiendo porque ciertas funciones no tienen el charset latino... siendo que esta seteado en todos lados de mi php.ini, y en mi página ... es rarísimo...
  #10 (permalink)  
Antiguo 30/09/2010, 09:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 7 meses
Puntos: 2534
Respuesta: Problema con el caracter grado º

por el amor del manual de PHP, ¡¡que para eso existen funciones multibyte!!

http://php.net/mb_substr
http://php.net/mb_replace

¿te suenan?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: caracteres, charset, grado, latino
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:48.