Foros del Web » Programando para Internet » PHP »

Simbolos especiales como en Twitter o Facebook

Estas en el tema de Simbolos especiales como en Twitter o Facebook en el foro de PHP en Foros del Web. Hola, estoy haciendo un sistema de comentarios y no puedo lograr insertar simbolos o caracteres especiales como lo hacen twitter y facebook. No se trata ...
  #1 (permalink)  
Antiguo 23/05/2010, 08:31
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Simbolos especiales como en Twitter o Facebook

Hola, estoy haciendo un sistema de comentarios y no puedo lograr insertar simbolos o caracteres especiales como lo hacen twitter y facebook.

No se trata de acentos ni de eñes, eso funciona bien, lo que quiero poder insertar son caracteres como estos



Aca un buen listado de estos interesantes simbolos:

http://thenextweb.com/2008/09/16/twitterkeys-enhance-your-twitter-conversations

Por el momento intente con las colaciones latin1 y utf8, pero no hay caso, cuando intento hacer el insert desde phpmyadmin directo, inserta el comentario, pero reemplaza los simbolos por ? y muestra el siguiente warning:

Warning: #1366 Incorrect string value: '\xE2\x99\xA3K\xE2\x99...' for column 'comment' at row 1

Bueno, comparto mi problema quizas a mas de uno le interese, espero que podamos resolverlo de alguna forma.

Saludos!
  #2 (permalink)  
Antiguo 23/05/2010, 08:51
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Simbolos especiales como en Twitter o Facebook

Ajá... ¿Y eso qué tiene que ver con la base de datos?

Eso es asunto de programación. No son cosas que se guarden en la base...

¿Por qué no preguntas en el foro del lenguaje que estés usando?
Allí te ayudarán mejor y más rápido...
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 23/05/2010, 09:09
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Simbolos especiales como en Twitter o Facebook

Ups, el problema no es un tema de encoding con la DB ?

De no serlo, estoy usando PHP, podrias mover el tema al foro de PHP? asi no hago un clon del mensaje en el otro foro..

Gracias!
  #4 (permalink)  
Antiguo 23/05/2010, 16:37
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Simbolos especiales como en Twitter o Facebook

Ya reporté el mensaje para que te lo trasladen.
El tema de representar en pantalla es exclusivamente asunto de programación. En lo que se refiere a esos símbolos, son producto del uso de determinadas fuentes en pantalla. Y eso se controla con el HTML.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 23/05/2010, 19:45
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Simbolos especiales como en Twitter o Facebook

Buenisimo gracias!

Pero me gustaria agregar que no se trata de un tema de fuentes, por ejemplo este art:

───▄████▄─────▄███▄───
──███▄█▀──▄──██▄█▄██──
──█████▄─────███████──
───▀████▀────█▀█▀█▀█──

Es posible gracias a los caracteres unicode, estuve averiguando algo y su representacion es algo asi como \u258c \u2584 \u2580

Solo quedaria saber alguna forma de pasar del caracter a su "entidad" y despues poder volver a mostrarlo sin que se rompa el encoding.. todo un tema
  #6 (permalink)  
Antiguo 23/05/2010, 20:28
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Simbolos especiales como en Twitter o Facebook

Me parece que no comprendes el principio de la codificación de caracteres...
Los caracteres símbolo no existen desde el punto de vista binario. Son una convención por la cual se usa un sistema binario de 8, 16 o 32 bits para representar un conjunto de símbolos de un lenguaje humano, esto es, un código de conversión binario- caracteres.
En el ASCII, por ejemplo, el hexadecimal 41, decimal 65 o binario 01000001, es la "A".
El Unicode es un estándar para extender la representación de 255 originales de caracteres a la totalidad de los símbolos de los lenguajes escritos, adicionando otros códigos para el manejo y visualización de textos de diverso origen.
Pero lo que se conoce como Unicode es el conjunto de códigos desde el U-0000 al U-FFFF, los cuales, para ser visualizados deben tener en las páginas de símbolos de un tipo de letra, sus respectivas formas gráficas... o de lo contrario no pueden verse. Simplemente son reemplazados por un objeto no representable o un caracter definido como tal.

Esa diferencia la puedes notar cuando pasas del Arial común al Arial Unicode. En el caso del Arial, existe una enorme cantidad de símbolos, como los arábigos, coreanos y chinos, que no tienen graficación; en cambio en el Arial Unicode sí la tienen.
Es exactamente la misma razón por la cual hay tipografías que no tienen "ñ", "á" o alguna otra forma usada en nuestro idioma.

Así que ese "packman" y "fantasmita" que pones de ejemplo, si no existen en la página de códigos de la tipografía, simplemente no existen para visualizarse...

¿Se entiende la idea?

En tu caso específico, puede requerirse que un determinado símbolo pueda almacenarse en la tabla, para que luego de recuperarlo el mismo pueda seguir representándose. Eso se puede resolver con UTF8, o bien almacenando los datos como BLOB.
Pero el caso de la visualización sigue siendo tema de programación y no de base de datos.

Las bases de datos, y esto tenlo en cuenta, no grafican nada. Solamente guardan datos y responde consultas.
Son las interfases de usuario las que lo hacen. Sea en Oracle, SQL Server, MySQL o lo que sea. Y para que quede claro: El Analizador de Consultas de SQL Server, o bien el Oracle Enterprise Manager, son interfases de usuario, perono son la base de datos, ni tampoco son el DBMS. Eso es otra cosa.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)

Última edición por gnzsoloyo; 23/05/2010 a las 20:40
  #7 (permalink)  
Antiguo 24/05/2010, 14:45
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Simbolos especiales como en Twitter o Facebook

Entiendo la idea!!

Entonces segun entiendo, lo que deberia hacer es usar alguna funcion de PHP para pasar a unicode los simbolos y guardarlo de esa forma en la db ( U-0000 al U-FFFF )

Cuando recupero la informacion, volver a hacer la transformacion de forma inversa para poder imprimirlo y que sea visualizado..

Me gustaria poder ver en la db del foro aver como guardo el pacman con el fantasmita :p

Bueno, voy a ponerme a jugar un rato con esto. Gracias por las aclaraciones!!

Saludos
  #8 (permalink)  
Antiguo 24/05/2010, 17:55
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Simbolos especiales como en Twitter o Facebook

No me sale :D

Me estoy volviendo loco.. pero hay algo curioso..

Me instale un WP en local para hacer una prueba, y escribi un post con el pacman y el fantasmita, funciono perfecto. Luego me fije en la base de datos aver como lo habia guardado, y lo unico que pude ver fue ?????????????????????? y mas ??????????


viendo el codigo fuente del html generado, en el mismo codigo fuente se mostraba el pacman con el fantasmita.. Eso me descoloco un poco..

Pero ahora fijandome en el foro este, veo que vBulletin hace el proceso de pasar los caracteres a su respectiva entidad HTML, ya que mas precisamente el pacman con el fantasmita, lo transforma en :

"&#9472 &#9472 &#9472 &#9604 &#9608 &#9608 "

y mas de esos ( les elimine los ; finales, sino mostraba los caracteres y no la entidad )..

Bien, la pregunta es: como paso del caracter rado a su entidad? ya que la funcion [URL="http://php.net/get_html_translation_table"]get_html_translation_table[/URL] No contiene estos caracteres espciales, y es para otra cosa..

Tendre que hacer una lista propia de caracteres especiales?

Gracias, saludos!
  #9 (permalink)  
Antiguo 25/05/2010, 05:46
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Simbolos especiales como en Twitter o Facebook

Es un tema interesante la verdad xD

───▄████▄─────▄███▄───
──███▄█▀──▄──██▄█▄██──
──█████▄─────███████──
───▀████▀────█▀█▀█▀█── jajajajjaja

No te puedo ayudar porque no se mucho, pero.. si sabes como hacer la tabla y como implementarla... porque lo dudas??

Lo único que te puedo decir es que hay muchos caracteres que en ISO por ejemplo no salen, y sin embargo con la codificación UTF8 sí, pero supongo que esto no te ayudara mucho.

Aunque yo creo que los típicos símbolos como los que pusiste arriba, sí que salen con UTF8 eh..
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.
  #10 (permalink)  
Antiguo 25/05/2010, 05:52
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Simbolos especiales como en Twitter o Facebook

A ver.. te comento, yo si que puedo poner esos simbolos en mi página web, uso PHP y MySQL. Lo acabo de probar.

Tengo un ritch text editor, (parecido al de esta página, si no sabes lo que es, es el cuadradito este donde escribes q te da la opcion de poner cursiva etc..) Inserto los caracteres. En este caso los he copiado de la página que tu pusiste, y los pego.

A la hora de guardarse en la base de datos hago un htmlentities($variable), se guarda esto

p><p>♥ ✈ ♠ ☻ ♪</p>

y a la hora de llamarlo con hacer un html_entity_decode($campo). te salen las figuritas

♥ ✈ ♠ ☻ ♪

Mientras estas figuritas sean las de la página esa, o las que puedes encontrar en el propio word en insertar simbolo, te las cogerá, pues todas estas como bien te dije antes, son UTF8.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.
  #11 (permalink)  
Antiguo 25/05/2010, 13:18
 
Fecha de Ingreso: septiembre-2007
Ubicación: Argentina
Mensajes: 29
Antigüedad: 17 años, 2 meses
Puntos: 0
Respuesta: Simbolos especiales como en Twitter o Facebook

Sii, es eso lo que necesito.. aver veamos


Usas un rich text editor, o un editor WYSIWYG, cuando envias por POST el contenido y desde php levantas la variable para hacerle un htmlentities, a mi parecer, el entities se aplica sobre el & pero de la propia entidad ya convertida, es decir:

el avioncito ✈

su entidad para ser representado en HTML es & #9992;

a lo que el htmlentities me parece que aplica es a ese &, por eso queda

✈

Bien, entonces, cuando envias la data, probablemente el mismo editor ya haya convertido el avioncito a ✈.

Porque sino no entiendo, htmlentities para convertir usa la funcion get_html_translation_table, esta devuelve un array con los simbolos como key y las entidades como valor, pero sobre los caracteres basicos, no estos simbolos extendidos..

Podrias decirme que editor usas, asi lo reviso un poco aver como le hace.. muchas gracias!

Saludos

Última edición por sencev; 25/05/2010 a las 13:46
  #12 (permalink)  
Antiguo 26/05/2010, 01:36
Avatar de Flow89  
Fecha de Ingreso: abril-2010
Ubicación: Valladolid
Mensajes: 346
Antigüedad: 14 años, 7 meses
Puntos: 1
Respuesta: Simbolos especiales como en Twitter o Facebook

Se llama widgeditor.

http://drupal.org/project/widgeditor


Pero sigo sin entender cual es tu problema realmente, ya que los que quieres poner si que van a aparecer :S


Espero que te sirva, un saludo.
__________________
Seamos realistas. Busquemos lo imposible. ;)
La forma de dar las gracias en este foro, es dando Karma, aunque a veces con un simple Gracias, basta.

Etiquetas: especiales, facebook, simbolos, twitter
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 09:35.