Iconv windows

Started by josebita, July 22, 2009, 12:02:01 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

josebita

Acabo de compilar mi librería iconv para windows (quien no sepa de qué va esto, que espere un ratito y luego la documento). Espero que esté bien, incluye un ejemplo de uso, pero luego la documento.

Si alguien la prueba y le falla, que avise y lo miro después, que tengo un poco de prisa.

osk


Danielo515

Yo no se de que va ni para que sirve, así que mejor me espero...

Windgate

Yo tampoco sé de qué va, pero parece ser alguna forma de convertir una cadena de texto en icono por lo que veo en el código...

Lo he probado en Ubuntu y no me funciona el .sh, creo que debido a que no tengo gcc instalado. ¿Puede ser por esa razón Josebita? Me espero a la versión mejor documentada cuando la subas xD
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

mz


panreyes

HELL YES! Suena a que deberíamos tenerla en Bennu en la rama principal de módulos :)

splinter_work

Quote from: Windgate on July 22, 2009, 12:58:25 PM
Yo tampoco sé de qué va, pero parece ser alguna forma de convertir una cadena de texto en icono por lo que veo en el código...

Lo he probado en Ubuntu y no me funciona el .sh, creo que debido a que no tengo gcc instalado. ¿Puede ser por esa razón Josebita? Me espero a la versión mejor documentada cuando la subas xD

jajajaja... "cadena de texto en icono"... muy bueno...

iconv creo que significa "international conversion"... sirve para conversion de caracteres entre distintas codificaciones segun idioma.

Windgate

QuoteWindgate escribió (Hoy a las 05:58:25 ):
Yo tampoco sé de qué va, pero parece ser alguna forma de convertir una cadena de texto en icono por lo que veo en el código...

Lo he probado en Ubuntu y no me funciona el .sh, creo que debido a que no tengo gcc instalado. ¿Puede ser por esa razón Josebita? Me espero a la versión mejor documentada cuando la subas xD

jajajaja... "cadena de texto en icono"... muy bueno...

iconv creo que significa "international conversion"... sirve para conversion de caracteres entre distintas codificaciones segun idioma.

lol subestimé a Josebita... Se me escapa la utilidad que pueda sacarle a semejante cosa... A corto plazo al menos... :o
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

splinter_work

la ultilidad es que no te salgan cosas raras en los textos como te pasaba con los acentos...

Windgate

Dioses del olimpo...

Una string cadena="Hola, ¿Qué tal tienes esa tripa, tío?, ¿Contenta?";

¿Se mostraría correctamente en pantalla?

Sería magnífico, ojalá sea tan fácil de usar como tantas otras cosas de Bennu, seguiré este hilo!!!
Iván García Subero. Programador, profesor de informática, monitor de actividades culturales y presidente de TRINIT Asociación de Informáticos de Zaragoza. http://trinit.es

splinter_work

claro, fijate el karaoke... la usa...

josebita

Jué, llego a saber que iba a tener esta aceptación y lo compilo antes XD.

A ver, es lo que dice Mz. Se trata de un módulo que permite cambiar la codificación de los textos. Se trata nada más que de un binding de GNU libiconv.
Para eso de los acentos que dices serviría. Sabiendo la codificación del texto de origen y de la de destino, cambia el texto entre una y otra.

Me gustaría cambiarla un poco para que en caso de error devuelva la misma cadena de origen. Ahora devuelve el código de error y eso hace que funcione raro.
La otra cosa que me gustaría es cambiarle el libiconv por mod_iconv, que supongo es un poco más la filosofía de Bennu.

El módulo sólo tiene una función útil. La función es:

[code language="bennu"]string iconv(string origin_charset, string dest_charset, string cadena_a_convertir);[/code]
Donde origin_charset y dest_charset son uno de los charsets soportados y cadena_a_convertir es la cadena cuyo charset se quiere convertir.

La lista de charsets soportados (copiada de la página oficial de GNU libiconv) es:

  • European languages
    ASCII, ISO-8859-{1,2,3,4,5,7,9,10,13,14,15,16}, KOI8-R, KOI8-U, KOI8-RU, CP{1250,1251,1252,1253,1254,1257}, CP{850,866,1131}, Mac{Roman,CentralEurope,Iceland,Croatian,Romania}, Mac{Cyrillic,Ukraine,Greek,Turkish}, Macintosh
  • Semitic languages
    ISO-8859-{6,8}, CP{1255,1256}, CP862, Mac{Hebrew,Arabic}
  • Japanese
    EUC-JP, SHIFT_JIS, CP932, ISO-2022-JP, ISO-2022-JP-2, ISO-2022-JP-1
  • Chinese
    EUC-CN, HZ, GBK, CP936, GB18030, EUC-TW, BIG5, CP950, BIG5-HKSCS, BIG5-HKSCS:2001, BIG5-HKSCS:1999, ISO-2022-CN, ISO-2022-CN-EXT
  • Korean
    EUC-KR, CP949, ISO-2022-KR, JOHAB
  • Armenian
    ARMSCII-8
  • Georgian
    Georgian-Academy, Georgian-PS
  • Tajik
    KOI8-T
  • Kazakh
    PT154, RK1048
  • Thai
    ISO-8859-11, TIS-620, CP874, MacThai
  • Laotian
    MuleLao-1, CP1133
  • Vietnamese
    VISCII, TCVN, CP1258
  • Platform specifics
    HP-ROMAN8, NEXTSTEP
  • Full Unicode
    UTF-8
    UCS-2, UCS-2BE, UCS-2LE
    UCS-4, UCS-4BE, UCS-4LE
    UTF-16, UTF-16BE, UTF-16LE
    UTF-32, UTF-32BE, UTF-32LE
    UTF-7
    C99, JAVA
  • Full Unicode, in terms of uint16_t or uint32_t (with machine dependent endianness and alignment)
    UCS-2-INTERNAL, UCS-4-INTERNAL

Además, si a dest_charset se le añade el texto "//TRANSLIT" además si no existe ese carácter en particular, lo cambia por el más parecido.
Por ejemplo, si se quiere convertir la cadena:
"Mi binding de iconv mola mogollón"
a un charset en que no existe la "ó", convierte el texto a:
"Mi binding de iconv mola mogollon".

Creo que es todo :) Espero que os sea útil.

Otra cosa:
Si quereis averiguar el charset de un fichero de texto, en mi karaoke teneis una rutina que lo hace, con sólo pasarle la ruta al fichero. Debería funcionar con sólo copiar el fichero inc/charset.inc a vuestros proyectos.
Para añadir charsets para detectar, en la carpeta donde esté el fichero principal de código, debeis poner una carpeta llamada charset_finder y dentro un fichero por charset, con el nombre del charset y en cada línea un carácter codificado en el charset que se quiere detectar, es decir, algo como un fichero de nombre:
ISO-8859-1
con los caracteres:
á
é
í
ó
ú
ü
ñ
¿
ç


A ver si os gusta.

josebita

PD: Voy a estar unos días disfrutando del sol del verano (:P a los del hemisferio sur) y luego estaré unos pocos días más desconectado. Si alguien tiene alguna duda, que lo deje por aquí y a la vuelta le echo un ojo, ok?

Hale, a dormir.

SplinterGU

te pario! :)

aca son los dias mas frios del año... aca cerca de donde estoy, hizo -17º... diablos! fue record!

que lo disfrutes...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

osk

Tal como propone Pixel...¿sería descabellado incluir este módulo entre los oficiales? Lo digo porque es una utilidad interesante pero "rara". Si viene de serie sería mucho más utilizada y sería un punto a favor...
Venga, hasta luego.