NLS_DATE_LANGUAGE: LATIN AMERICAN SPANISH
NLS_CHARACTERSET: WE8ISO8859P1
NLS_SORT: SPANISH
NLS_NCHAR_CHARACTERSET: AL16UTF16
NLS_COMP: BINARY
NLS_LENGTH_SEMANTICS: BYTE
NLS_NCHAR_CONV_EXCP: FALSE
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
Pero, ¿cuál? ¿La v5.8.0, la v5.8.8...? Es que de una versión a otra sí que pueden cambiar mucho las cosas, sobre todo en el tema de codificaciones.puchumx escribiste:estoy trabajando con la versión 5.8 de Perl.
Se trata de "Ver" en qué codificación está. Si no es con ninguna de esas, pues hay que seguir probando. Yo, en Linux, cuando no sé qué es lo que estoy viendo, uso un volcado hexadecimal para "ver los bytes":puchumx escribiste:La codificación del UltraEdit que estaba usando era la "1252 (ANSI - Latín I)" (ahora la pasé a "28591 (ISO 8859-1 Latín I)") pero no funcionó.
Pues si funciona bien, déjala como está.puchumx escribiste:Usamos la librería Convert::IBM390 y está bien configurada (aparentemente, es la correcta, la 284), así que tendría que leer cómo combinarla con la "Encode"...
Bueno, entre la versión española y la norteamericana, hay unas diferencias, como el 'collating' (ordenación), fechas, horas, caracteres de separación de los millares y decimales... Pero esto se refiere a la localización (particularidades de cada país). Estábamos hablando de la codificación (tabla de caracteres).puchumx escribiste:Algo que me llamó la atención es lo que está seteado en la base de datos, que no corresponde a lo de Unix (no sé si por ahí viene el problema):
...
En cambio en Unix dice que estoy en "US", cuando debería estar en "ES", ¿no?
Bien... no es ASCII... ¿Qué es? ¿Qué byte(s) es/son?puchumx escribiste:También me llama mucho la atención lo siguiente:
* CON LNS_LANG no seteado
Sin comprimir -> Ñ = ?
Usando Convert::IBM390, y Uedit de EBCDIC a ascii -> Ñ = ?
La variable de entorno NLS_LAG (que no LNS_LANG) le indica a Oracle que nuestra aplicación/terminal trabaja en esa codificación, así que suponemos que entregará el resultado en esa codificación. Si nuestra terminal también está en is-8859-1, por eso podemos ver bien la 'Ñ' en pantalla. Otra cosa es lo que hace nuestro programa: ¿seguro que sabe que ahora los datos que recibe desde la base de datos están en iso-8859-1?puchumx escribiste:* CON LNS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
Sin comprimir -> Ñ = Ñ
Usando Convert::IBM390, y Uedit de EBCDIC a ascii -> Ñ=# , ñ=|
Bueno, pues ya tenemos una pista más.puchumx escribiste:Desde Unix me dicen que está todo bien, que el charset está funcionando bien y que ISO8859-1 es la configuración...
Eso quiere decir que en ese sistema no están instaladas las tablas de localización para es_ES.ISO-8859-1. Deberás pedir a los administradores que las instalen.puchumx escribiste:¡Ah!, intenté setear la variable LC_ALL para decirle a Perl que estoy usando caracteres españoles, pero al setearlo en el perl así:
use POSIX qw(locale_h);
setlocale(
LC_ALL,
"es_ES.ISO-8859-1"
)
or die "Fallo al setear la variable LC_ALL";
al correr el perl, en Unix me figura:
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LC_ALL = "es_ES.ISO-8859-1",
LC__FASTMSG = "true",
LANG = "en_US"
are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 24 invitados