RE:Cambiar encoding de utf-8 a iso-8859-1
Hola,
no soy un experto de base de datos (ni de sybase) pero voy a intentar a ver si puedo darte alguna idea:
Para empezar, creo que tus acentos y ñ's ya las has perdido. Una vez mal grabadas ya no se convertirán al cambiar el encoding ( ¿me equivoco? ).
el primero problema que tengo es si se puede definir el encoding a nivel de tabla o a nivel de database???
con cuál bd de sybase estás? ASA, ASE, anywhere??
con MySql creo que sí es posible conseguirlo con un ALTER TABLE pero no es tu caso, valdría la pena buscar en algún manual si con "Sybase" eso es posible.
( me parece que como mucho puedes hacer un "alter DATABASE" y no "table" para conseguir tu fin.
si buscas un buen manual de sybase anywhere 11 (en 1 sola línea):
http://www.ianywhere.com/developer/product_manuals/sqlanywhere/1101/en/pdf/dbreference_en11.pdf
busca "create database" y busca la sección 'encoding' y 'iso-8859-1' en el pdf de 1000 y pico páginas.
Con sqlanywhere parece que sólo se puede aplicar el encoding a la base de datos entera y no a nivel de tabla ... (por lo que veo hasta ahora).
si usas sqlanywhere, usa la utilidad "Sybase central" y cuando haces botón derecho del ratón sobre la base de datos tendrás varias opciones que te puedan interesar:
puedes usar "create custom collation" (tiene que ver con el orden según set de carácteres. no sé si eso te vale para algo pero salen los ISO- ... ).
también puedes hacer un 'unload database' que te permite descargar y cargar los datos de una base de datos a otra.
sino:
------
lo que me surge es
1) exportar todos los datos a txt (sin nombre de columnas), desde un database painter: 'file', 'save rows as' y elegir 'text' (hay opción de codificación alli también)
2) crear la tabla en Sybase de nuevo con el encoding que necesitas. No sé como es eso al no saber la versión de bd que estás usando.
3) convertir el txt exportado si lo consigues con linux o windows, un conversor que encontré:
bájate esta (las dos líneas son una sóla):
http://download.cnet.com/Character-Set-Converter/3000-7241_4-10542412.html?tag=mncol
4) importar los datos de nuevo a tu tabla nueva
si prefieres Linux para convertir el archivo txt:
--------
vi en algún sitio que con Linux se puede convertir Utf-8 A ISO-8859:
(creo que tienes que cambiar el --from-code con el --to-code):
Convert a iso-8859-1 charset file into a utf-8 charset file using standard Linux tools.
The solution – using bash shell and using Linux – of course:
iconv --from-code=ISO-8859-1 --to-code=UTF-8 iso.txt > utf.txt
(encontrado en
http://mediakey.dk/~cc/howto-convert-text-file-from-utf-8-to-iso-8859-1-encoding/
)
suerte,
miguel