Page 1 of 1
TRichedi
Posted: Fri Mar 14, 2025 8:59 pm
by FiveWiDi
Hola a todos,
Si tengo un mensaje que en un MsgInfo() se ve bien (con sus acentos y sin caracteres 'raros'), como puedo insertar en un control TRichedi y que se vean bien los caracteres acentuados?
Estoy aplicando esto:
oRTF1:InsertRTF( ElTextoAInsertar )
No veo otro método con que hacerlo.
En MsgInfo() este texto se ve bien, pero al hacer un oRTF1:InsertRTF( ElTextoAInsertar ) se ve así:
"Saps coses del futbol?
--------------------------------------------------------------------------------
SÃ, sé moltes coses sobre futbol! Puc parlar de:
* **Regles del joc:** Fora de joc, faltes, penals, targetes, etc.
* **Tà ctiques i estratègies:** Diferents formacions (4-4-2, 4-3-3, 3-5-2, etc.), estils de joc (possessió, contraatac, etc.)"
Muchas gracias
Re: TRichedi
Posted: Sat Mar 15, 2025 3:24 am
by Antonio Linares
Prueba a usar:
FW_SetUnicode( lOnOff )
al inicio de tu aplicación
Re: TRichedi
Posted: Sat Mar 15, 2025 8:52 am
by FiveWiDi
Antonio Linares wrote: Sat Mar 15, 2025 3:24 am
Prueba a usar:
FW_SetUnicode( lOnOff )
al inicio de tu aplicación
Gracias Antonio, pero no hay manera.
He aplicado FW_SetUnicode( lOnOff ) al principio de la aplicación, he cambiado el control por un EDIT y tampoco muestra bien los caracteres, usando oRTF1:InsertRTF() o oEDIT1:cText().
Se trata de una respuesta de Gemini, con MsgInfo() muestra bien el texto, pero si quiero que ese texto se vea en un control (RICHEDIT, RICHEDIT5, EDIT) no los muestra bien, se ven caracteres 'raros', si la respuesta de Gemini la grabo directamente en un fichero plano también se ven esos caracteres raros. Son principalmente los acenturados.
* **Tà ctiques i estratègies:** Diferents formacions (4-4-2, 4-3-3, 3-5-2, etc.), estils de joc (possessió, contraatac, etc.)"
Lo que pretendo es ver la respuesta de Gemini y además guardarla. Habrán caracteres 'diferentes' como la cara sonriente pero eso ya lo asumo, pero que se vean 'feos' los acentuados... pues no queda bien. Por que además el 'tio' escribe como Dios manda y no se salta ningún acento.
A desayunar, a ver que se me ocurre.
Re: TRichedi
Posted: Sat Mar 15, 2025 9:18 am
by Antonio Linares
Carlos,
Al decirme que estás usando Gémini me has dado la pista
Revisa FWH\samples\webia.prg y como se usa hb_Utf8ToStr( oGemini:getValue() )
Re: TRichedi
Posted: Sat Mar 15, 2025 10:51 am
by FiveWiDi
Antonio Linares wrote: Sat Mar 15, 2025 9:18 am
Carlos,
Al decirme que estás usando Gémini me has dado la pista
Revisa FWH\samples\webia.prg y como se usa hb_Utf8ToStr( oGemini:getValue() )
Oleeeeeeeeeeeeeee!!!!!!!!
Ya se ven bien los caracteres acentuados, y lo meto en un RTF.
Ya puedo crear la ayuda del programa.
Si que es verdad que las caras sonrientes y supongo que otros 'dibujitos' se convertirán a lo que se pueda, pero el texto parece perfecto.
Muchas gracias,
Re: TRichedi
Posted: Sat Mar 15, 2025 1:08 pm
by cnavarro
También puedes añadir al principio de tu aplicacion
Re: TRichedi
Posted: Sat Mar 15, 2025 3:26 pm
by karinha
Buenas tardes Maestro Navarro, estos comandos hacen lo mismo, o son diferentes, o se deben utilizar ambos?
Gracias, tks.
Regards, saludos.
Re: TRichedi
Posted: Sat Mar 15, 2025 4:23 pm
by cnavarro
UTF 8 es un sistema de codificación, pero el estándar que codifica e identifica todos los caracteres de todos los idiomas que existen en el mundo se llama Unicode.
Es decir, puedes activar unicode, pero la codificación puede ser "Chino", por ejemplo, pero si vas a trabajar con una app o interface que usa UTF8 ( en web es lo habitual ), puedes activarlo para no tener que estar codificando/decodificando continuamente
Pero si quieres profundizar en el tema, la IA te dirá algo como ( y he añadido algo de mi propia cosecha ):
La diferencia entre UTF-8 y Unicode es fundamental, pero a menudo se confunden porque están estrechamente relacionados.
""Unicode:*** **Es un estándar de codificación de caracteres.
** Piensa en él como un diccionario gigante que asigna un numero único (llamado "punto de código") a cada carácter, símbolo, emoji, etc., de prácticamente todos los idiomas del mundo.* **Define qué caracteres existen y qué número los representa.
** Por ejemplo, la letra "A" mayúscula tiene el punto de código U+0041 == 65 DECIMAL. La letra "¤" tiene el punto de código U+00F1. Un emoji de una cara sonriente puede tener un punto de código como U+1F600.
* **No especifica cómo se almacenan esos números en la memoria o en un archivo.** Solo dice "este carácter es este número".**UTF-8:*** **Es una forma específica de codificar los puntos de código Unicode en bytes para almacenarlo o usarlos.** Es decir, es un esquema de codificación que te dice cómo representar esos números Unicode (los puntos de código) como secuencias de bytes (unos y ceros) que una computadora puede entender y almacenar.* **Es una codificación de ancho variable.** Esto significa que un carácter Unicode puede representarse con 1, 2, 3 o 4 bytes, dependiendo del punto de código. Los caracteres ASCII básicos (letras, números, símbolos comunes) se representan con 1 byte, lo que hace que UTF-8 sea compatible con ASCII. Los caracteres m s complejos (como los de idiomas asiáticos o emojis) requieren más bytes.* **Es la codificación más común para la web y muchos otros sistemas.
** Su eficiencia (para el inglés y otros idiomas occidentales) y su compatibilidad con ASCII la hacen muy popular.**En resumen:*** **Unicode es el "diccionario" de caracteres.** Define qué‚ caracteres existen y qué‚ número los representa.* **UTF-8 es una forma de "escribir" ese diccionario en un formato que las computadoras pueden entender.** Es una forma de convertir los números Unicode en bytes.**Analogía:**Imagina que Unicode es un libro de recetas que describe cómo hacer diferentes platos. UTF-8 es una forma específica de escribir esas recetas en un lenguaje que un chef (la computadora) pueda entender. Podrías tener otras formas de escribir las recetas (como UTF-16 o UTF-32), pero UTF-8 es una de las m s comunes y eficientes.**Otros esquemas de codificación Unicode:**Además de UTF-8, existen otras codificaciones Unicode, como:* **UTF-16:** Utiliza 2 o 4 bytes para representar cada carácter. Es común en algunos sistemas operativos (como Windows) y en Java.* **UTF-32:** Utiliza siempre 4 bytes para representar cada carácter. Es m s simple de implementar, pero menos eficiente en términos de espacio, ya que incluso los caracteres ASCII básicos ocupan 4 bytes.**Por qué‚ es importante entender la diferencia:**Si no se especifica la codificación correcta, los caracteres pueden mostrarse incorrectamente. Por ejemplo, si un archivo está codificado en UTF-8 pero se intenta leer como si estuviera en ASCII, los caracteres no ASCII (como las letras acentuadas) se mostrar n como símbolos extraños. Por eso, es crucial asegurarse de que la codificación utilizada para leer y escribir archivos coincida con la codificación real del archivo.
Re: TRichedi
Posted: Sat Mar 15, 2025 8:39 pm
by FiveWiDi
cnavarro wrote: Sat Mar 15, 2025 1:08 pm
También puedes añadir al principio de tu aplicacion
De momento y como sólo es para esta situación concreta usaré la conversión de UTF8 a Str.
Muchas gracias Cristobal.
Re: TRichedi
Posted: Sat Mar 15, 2025 9:08 pm
by FiveWiDi
Como el asunto ha empezado en este hilo, aquí dejo el comentario.
Ya tengo preparada la ayuda para los códigos de error de Verifactu en VeFa32.
Le pregunto a Gemini causas y soluciones para el código de error que responde Hacienda, y Gemini contesta algo relacionado... pero lo que le parece.
Es más para algunos códigos diferentes ha contestado lo mismo.
Vamos, que nadie ha "enseñado/entrenado" a Gemini para Verifactu.
De todas maneras es un 'gustazo'.
Esto va a cambiar el mundo como darle la vuelta a un calcetín.
Re: TRichedi
Posted: Sat Mar 15, 2025 9:15 pm
by cnavarro
Teniendo en cuenta sobre todo, que lo que se ha visto hasta ahora es solo "la punta del iceberg"