Converster de iso para ansii

Alguém conhece alguma função que converta caracteres ansii para iso e vice-versa.

ANSII? ISO? Hein? Huh!?

Uai, não é quase a mesma coisa?
ANSI - quando falamos em caracteres ANSI normalmente estamos pensando nos caracteres do Windows (Windows-1252 se não me engano).
ISO - quando falamos em ISO normalmente seria ISO-8859-1, que é quase igual à codificação do Windows, exceto por meia dúzia de caracteres.

Pois é meu, são só meia dúzia de caracteres, mas o lance é que estou usando isso nun sistema legado (banco de dados) do cliente que usa caracteres Iso, quando eu puxo os dados do banco do cliente para minha aplicação, aparece com os caracteres zuados porque no windows os caracteres são ansii, então pensei…preciso de algo que faça a conversão…

Olá

Isto é apenas um problema de character encoding ou eu não estou entendendo nada. Se for o que eu penso a solução é simplesmente uma questão de setar corretamente os encodings. Veja qual o encoding usado no servidor da base de dados e altere sua aplicação para ficar de acordo.

Se não entende de character encoding busque por encoding aqui mesmo no GUJ.

[]s
Luca

O encoding do Windows é o CP1252, que é basicamente o ISO-8859-1, também chamado de Latin1. Normalmente o banco ou o driver JDBC oferecem meios de fazer a conversão automaticamente.
Que banco está usando e qual a versão de ISO?

Dá uma olhada aqui nesse artigo da Wikipedia

Bem, quando a versão do iso é o 2709, pelo menos é o que diz a documentação que tenho, quanto a usar JDBC… O banco não é um banco relacional, é um banco chamado Winisis que é disponibilizado gratuitamente pela unesco, ele é usado prinicpalmente em bibliotecas, pois seu mecanismo de busca textual, exibição de dados é bem produtivo para bibliotecas. Para acessar o banco eu uso um .jar que consegue ‘conversar’ com o banco, mas como já disse, não é jdbc…Vou estudar o encoding…já consegui fazer este programa em delphi, mas tô querendo migrar ele para java, para fazer uma aplicação web para essa biblioteca.Agradeço a ajuda de todos…

ISO 2709 não é um “encoding” mas um formato de dados para acesso a dados de bibliotecas (bibliotecas de livros e revistas, não de softwares!)

Provavelmente seria interessante a gente ver um “dump hexadecimal” dos bytes que você leu da base. Com isso talvez dê para chutar o encoding necessário.

então, realmente o iso 2709 não é encoding…descobri um site de uns carinhas que estão desenvolvendo uma versão open sorce do Winisis (o banco de dados da biblioteca) http://openisis.org/ lá encontrei o seguinte

...  0   1   2   3   4   5   6   7   8   9   A   B   C   D   E   F
  0 NUL STX SOT ETX EOT ENQ ACK BEL BS  HT  LF  VT  FF  CR  SO  SI
 16 DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM  SUB ESC FS  GS  RS  US
... 0 1 2 3 4 5 6 7 8 9 A B C D E F
 32   ! " # $ % & ' ( ) * + , - . /
 48 0 1 2 3 4 5 6 7 8 9 : ; < = > ?
 64 @ A B C D E F G H I J K L M N O
 80 P Q R S T U V W X Y Z [ \ ] ^ _
 96 ` a b c d e f g h i j k l m n o
112 p q r s t u v w x y z { | } ~ DEL
128 (C1 controls ...
140 ...  ommited)
160  ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯
176 ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿
192 À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï
208 Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß
224 à á â ã ä å æ ç è é ê ë ì í î ï
240 ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

Neste site eles dizem que isso é ISO-8859-1, então acho que nisso dá pra mim começar a trabalhar…Não é?

Voce pode conferir o ISO-8859-1 aqui:
http://czyborra.com/charsets/iso8859.html#ISO-8859-1

Pelo que eu vi, meio que so de bater o olho, parece ser a mesma coisa. Bom, tenta… qualquer coisa dah um berro que a gente tenta ajudar :slight_smile:

Cara não sei se pode ajudar, mas se não me engano ANSI refere-se ao Unicode e você deve ta querendo usar o ISO-8859-1, que é anterior ao unicode. Sei lá…

Bom, vou tentar esclarecer tudo de vez:

ANSI: padrao que te deixava desenhar corez hackerz nos terminais. Consiste de sequencias de escape e um monte de comandinhos legais e nao tem naaaaaaada a ver com encodings. Hoje em dia, gracas a boa evolucao das interfaces baseadas em pixels, esta morto. Quase, pq no Linux ainda se usa.

ASCII: tabela original de caracteres, na epoca em que so tinha 128 caracteres. Nao existe mais faz um bom tempo, exceto em sistemas beeem legados.

ASCII Estendido: ASCII mais uma “pagina de codigo”, que quem usou DOS se lembra bastante. Tem 256 caracteres, e os 128 “extras” sao mutantes, pra caber os caracteres esquisitos que outras linguas latinas e anglo-saxonicas usam.

ISO-8859-1: outro nome pra uma das paginas de codigo mais famosonas usadas. Contem o conjunto de caracteres utilizado por linguas como ingles, frances, portugues, espanhol, italiano, alemao e umas outras ai. Ou seja, boa parte do mundo ocidental.

Unicode: viram que os ISOs e CPs da vida eram um saco, e finalmente resolveram dar um basta na historia toda, e inventaram o Unicode, que eh um conjunto de caracteres que teoricamente abriga QUALQUER glifo ja inventado pela humanidade, e ainda deixa espaco pra mais umas duas ou tres civilizacoes. O problema eh que nada era compativel com tudo isso, entao eles tiveram que “enfiar” o Unicode na tabela ASCII, e ai saiu o “revival” do ISO-8859-1, e tantos outros padroes, como o UTF-8 e UTF-16.

[quote=cv]Bom, vou tentar esclarecer tudo de vez:

ANSI: padrao que te deixava desenhar corez hackerz nos terminais. Consiste de sequencias de escape e um monte de comandinhos legais e nao tem naaaaaaada a ver com encodings. Hoje em dia, gracas a boa evolucao das interfaces baseadas em pixels, esta morto. Quase, pq no Linux ainda se usa.

ASCII: tabela original de caracteres, na epoca em que so tinha 128 caracteres. Nao existe mais faz um bom tempo, exceto em sistemas beeem legados.

ASCII Estendido: ASCII mais uma “pagina de codigo”, que quem usou DOS se lembra bastante. Tem 256 caracteres, e os 128 “extras” sao mutantes, pra caber os caracteres esquisitos que outras linguas latinas e anglo-saxonicas usam.

ISO-8859-1: outro nome pra uma das paginas de codigo mais famosonas usadas. Contem o conjunto de caracteres utilizado por linguas como ingles, frances, portugues, espanhol, italiano, alemao e umas outras ai. Ou seja, boa parte do mundo ocidental.

Unicode: viram que os ISOs e CPs da vida eram um saco, e finalmente resolveram dar um basta na historia toda, e inventaram o Unicode, que eh um conjunto de caracteres que teoricamente abriga QUALQUER glifo ja inventado pela humanidade, e ainda deixa espaco pra mais umas duas ou tres civilizacoes. O problema eh que nada era compativel com tudo isso, entao eles tiveram que “enfiar” o Unicode na tabela ASCII, e ai saiu o “revival” do ISO-8859-1, e tantos outros padroes, como o UTF-8 e UTF-16.[/quote]

Então eu estava toooooooooooootaaaaaaaaallllmeeeeennnnteeeee enganado :smiley: :smiley: :smiley:

Acho que pensei que o ANSI tinha a ver com Unicode porque as funções que lidam com isso no Delphi têm esse prefixo eu acho.

PS: acho que a ANSI é uma organização também, eu li que ela é membro da ISO…

PS2: Pelo o que eu li, nem o Unicode consegue guardar todos os símbolos de todas as línguas, porque lá pro oriente existem muitas, muitas línguas e dialetos, com alfabetos de milhares de símbolos.

O Unicode 2.0, que eh maior ainda, acomoda todos esses caracteres :wink:

http://www.unicode.org

[quote=cv]O Unicode 2.0, que eh maior ainda, acomoda todos esses caracteres :wink:

http://www.unicode.org[/quote]

Hummm… deve ter uns 20 bytes de largura :smiley: