Muchas gracias, por tu atención. Como siempre en primera línea dispuesto a ayudar.
Perdona mi torpeza, pero no acabo de entender tu ejemplo con el utf8.txt. Te mando tu ejemplo modificado cambiando el txt por variables. No sé si está bien planteada la consulta, pero la cuestión es que, según la gramática española, todas las palabras que tengan tildes hay ponerlas, sean en minúsculas o en mayúsculas. Desgraciadamente, aquí en España y con el castellano, se está incurriendo constantemente en el error de no poner tildes en las mayúsculas e incluso en las minúsculas.
Por ejemplo: VALÈNCIA ,València, PERÚ, Perú, BOGOTÁ, Bogotá tienen tilde y hay ponerlas, tanto si son en minúsculas como en mayúsculas. Y además se contemplan los tipos de tildes abiertas o cerradas según el dialecto de cada comunidad autónoma (València tiene tilde cerrada, propia del dialecto).
Lo curioso es que el problema aparece en Xbrowse, porque cuando editas el registro con un odlg los datos se muestran correctamente. Te mando una captura de pantalla
- Code: Select all Expand view RUN
#Include "FiveWin.ch"
REQUEST HB_CODEPAGE_PTISO
REQUEST HB_CODEPAGE_UTF8EX
REQUEST HB_LANG_ES
REQUEST HB_CODEPAGE_ESWIN // Para reconocer la EÑE y ACENTOS en los índices
Procedure Main()
// texto a converter
//LOCAL cStr := hb_utf8tostr( hb_memoread( 'utf8.txt' ) ) // Aten‡Æo / Adi‡Æo
Local cStr := "PEÑÀGUILA, Peñàguila, TURÍS, Turís, CÀLIG, Càlig, XÀTIVA, Xàtiva, AGROCÍTRICOS, Agocítricos, L'ALCÚDIA, L'Alcúdia"+CRLF+;
"ÁGORA, Ágora, ALMÀSSERA, Almàssera, PERÚ, Perú, BOGOTÁ, Bogotá, VALÈNCIA, València"
HB_CDPSELECT( "PTISO" )
hb_cdpSelect( "UTF8EX" )
HB_LANGSELECT ( "ES" ) // Idioma Español
HB_SetCodePage ( "ESWIN" ) // Para reconocer la EÑE y ACENTOS en los índices
? 'Directly : ', cStr
? 'UTF8toSTR : ',hb_utf8tostr( cStr )
? 'OemToAnsi + UTF8toSTR: ',hb_OemToAnsi( hb_utf8tostr( cStr ) )
? 'AnsiToOem + UTF8toSTR: ',hb_AnsiToOem( hb_utf8tostr( cStr ) )
? 'UTF8toSTR + OemToAnsi: ',hb_utf8tostr( hb_OemToAnsi( cStr ) )
? 'UTF8toSTR + AnsiToOem: ',hb_utf8tostr( hb_AnsiToOem( cStr ) )
? 'OemToAnsi : ',hb_OemToAnsi( cStr )
? 'AnsiToOem : ',hb_AnsiToOem( cStr )
// cStr := hb_utf8tostr( memoread( 'utf8.txt' ) )
? 'Directly : ', cStr
? 'UTF8toSTR : ',hb_utf8tostr( cStr )
? 'OemToAnsi + UTF8toSTR: ',hb_OemToAnsi( hb_utf8tostr( cStr ) )
? 'AnsiToOem + UTF8toSTR: ',hb_AnsiToOem( hb_utf8tostr( cStr ) )
? 'UTF8toSTR + OemToAnsi: ',hb_utf8tostr( hb_OemToAnsi( cStr ) )
? 'UTF8toSTR + AnsiToOem: ',hb_utf8tostr( hb_AnsiToOem( cStr ) )
? 'OemToAnsi : ',hb_OemToAnsi( cStr )
? 'AnsiToOem : ',hb_AnsiToOem( cStr )
// cStr := hb_memoread( 'utf8.txt' )
? 'Directly : ', cStr
? 'UTF8toSTR : ',hb_utf8tostr( cStr )
? 'OemToAnsi + UTF8toSTR: ',hb_OemToAnsi( hb_utf8tostr( cStr ) )
? 'AnsiToOem + UTF8toSTR: ',hb_AnsiToOem( hb_utf8tostr( cStr ) )
? 'UTF8toSTR + OemToAnsi: ',hb_utf8tostr( hb_OemToAnsi( cStr ) )
? 'UTF8toSTR + AnsiToOem: ',hb_utf8tostr( hb_AnsiToOem( cStr ) )
? 'OemToAnsi : ',hb_OemToAnsi( cStr )
? 'AnsiToOem : ',hb_AnsiToOem( cStr )
// cStr := memoread( 'utf8.txt' )
? 'Directly : ', cStr
? 'UTF8toSTR : ',hb_utf8tostr( cStr )
? 'OemToAnsi + UTF8toSTR: ',hb_OemToAnsi( hb_utf8tostr( cStr ) )
? 'AnsiToOem + UTF8toSTR: ',hb_AnsiToOem( hb_utf8tostr( cStr ) )
? 'UTF8toSTR + OemToAnsi: ',hb_utf8tostr( hb_OemToAnsi( cStr ) )
? 'UTF8toSTR + AnsiToOem: ',hb_utf8tostr( hb_AnsiToOem( cStr ) )
? 'OemToAnsi : ',hb_OemToAnsi( cStr )
? 'AnsiToOem : ',hb_AnsiToOem( cStr )
Return Nil
Saludos y gracias