Averiguar codificacion de una cadena

Averiguar codificacion de una cadena

Postby JoseLuis » Sun Apr 02, 2023 10:17 am

Buenas
En una DBF tengo un campo (Población) que unos registros estan con codificacion ansi y otros con codificación DOS

los que están en codificacion ansi me muestran la "Ñ" correctamente
los que están en codificacion dos me muestran la "Ñ" así "¥"
Si en la impresión hago un oemtoansi, la que tiene codificacón DOS se muestra correctamente, pero la que tiene codificación ansi se muestra mal.
he intentado con strtran(poblacion,"¥","Ñ"), y no me hace nada
he intentado con ? AT("¥",poblacion), y no me localiza éste símbolo.
Habría alguna forma de saber la codificación de éste campo para hacer el oemtoansi sólo cuando sea necesario?
--------------------------
Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Averiguar codificacion de una cadena

Postby Antonio Linares » Sun Apr 02, 2023 11:19 am

Estimado Jose Luis,

Pregúntale a chatGPT. A mi me resolvió ayer el quitar caracteres de escape ansi de un texto :-)

No siempre acierta a la primera, pero te da pistas. Regenera la respuesta varias veces
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Averiguar codificacion de una cadena

Postby JoseLuis » Sun Apr 02, 2023 12:25 pm

Antonio

No había utilizado nunca esta historia.
Me he registrado, he puesto la pregunta y me ha contestado:

Code: Select all  Expand view
   #include "CpGfunc.ch"

// Supongamos que tenemos una DBF llamada "datos.dbf" y un campo llamado "Población"
use datos
set codepage to spanish

// Recorremos los registros de la DBF
go top
do while !eof()
  // Obtenemos el valor del campo "Población" del registro actual
  poblacion = datos->Población

  // Adivinamos la codificación del campo "Población"
  cpg = CpgGuess(poblacion)

  // Imprimimos la codificación adivinada
  ? "La codificación de Población en este registro es:", cpg

  // Si la codificación es diferente a la que estamos usando actualmente, hacemos la conversión
  if cpg <> "ANSI" and codepage() <> cpg
    oemtoansi(poblacion)
  endif

  // Imprimimos el valor del campo "Población" ya sea que se haya hecho la conversión o no
  ? poblacion

  // Pasamos al siguiente registro
  skip
enddo
 


Ahora a averiguar donde conseguír ese incluye y esa librería
--------------------------
Saludos

Jose Luis
JoseLuis
 
Posts: 426
Joined: Thu Oct 19, 2006 12:28 pm
Location: Toledo

Re: Averiguar codificacion de una cadena

Postby Antonio Linares » Sun Apr 02, 2023 1:01 pm

Hazle la misma pregunta varias veces. No te fies de lo que dice siempre porque se inventa muchas cosas

Enviado desde mi SM-M325FV mediante Tapatalk
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Averiguar codificacion de una cadena

Postby paquitohm » Sun Apr 02, 2023 7:48 pm

Antonio Linares wrote:Hazle la misma pregunta varias veces. No te fies de lo que dice siempre porque se inventa muchas cosas

Enviado desde mi SM-M325FV mediante Tapatalk



ChatGPT es como una patata recién arrancada: Tienes que retirar toda la tierra para poder ver el tubérculo
paquitohm
 
Posts: 108
Joined: Fri Jan 14, 2022 8:37 am

Re: Averiguar codificacion de una cadena

Postby Antonio Linares » Sun Apr 02, 2023 8:04 pm

Irá mejorando más y más :-)
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 41314
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 57 guests