On 5/21/06, José Geraldo Gouvêa <[EMAIL PROTECTED]> wrote:
Em Sábado 20 Maio 2006 16:52, J. F. Mitre escreveu: > Tenho uma centena de cds que forma gravados em windows que eu preciso ler > corretamente no meu computador. > Hoje, quando pela primeira vez depois de ter modificado o sistema para utf8 > eu coloquei um desses cds no computador percebi que os nomes eram grafados > de acordo com regras iso-8859-1. Porque eles foram gravados no Windows e, que eu saiba, este SO não usa unicode (me corrijam se estou errado, há seis anos que só uso Linux).
Não, ele não usa unicode.
Não foi difícil achar a solução do problema, bem, pelo menos não > teoricamente. ?
Isso é uma caracteristica comum. Consegue imaginar a quantidade de pessoas que usam o windows e linux simultaneamente ?
Em dezenas de fontes, incluindo o man do mount. Aparece duas formas de > resolver o problema. > > A primeira adicionar iocharset=utf8 nas opções do /etc/fstab a segunda - > que pelo que entendi seria a mais correta para a solução do problema - é > adicionar utf8 (apenas) no arquivo /etc/fstab. > > Ficando assim a linha que define o CD no fstab. > > /dev/hdb /media/cdrom1 udf,iso9660 utf8,ro,user,noauto 0 0 > ou > /dev/hdb /media/cdrom1 udf,iso9660 iocharset=utf8,ro,user,noauto 0 0 > > depois de montar o dispositivo, observo a seguinte saída com o comando > "mount" > > /dev/hdb on /media/cdrom1 type iso9660 > (ro,noexec,nosuid,nodev,utf8,user=mitre) > ou > /dev/hdb on /media/cdrom1 type iso9660 > (ro,noexec,nosuid,nodev,iocharset=utf8,user=mitre) > > O que me leva a crer que a opção colocada no /etc/fstab foi interpretada > corretament nos dois casos. > O problema é que contínuo obtendo a saída dos nomes na forma ISO-8859-1. Desculpe a obviedade da minha resposta, mas o caso e que o CDROM é ROM, ou seja, ele é um sistema de arquivos de somente leitura. Uma vez tendo sido gravado como ISO8859-1 ele assim permanecerá enquanto existir. Você não pode fazer nada quanto a isso.
Na verdade, não, o CDROM é gravado em ISO-9660, quando monta o CD, tanto no linux como no windows, ele converte o nome do arquivo (não o conteúdo) para ISO-8859-1, no caso do windows, não tem jeito, é isso mesmo, mas no caso do linux isso é apenas um configuração, as características necessárias para fazer o linux funcionar com utf8 são as que eu coloquei acima, pelo menos são elas que estavam assim escritas no man do mount (ah! no man do mount na parte referente a montagem de CDs) Imagino que a dificuldade que você está tendo é que os nomes estão saindo
errados. Por isso é que eu concordo que deve haver algum problema porque o Linux deveria reconhecer os nomes de arquivo corretamente ao fazer a montagem (do mesmo modo que o browser reconhece o charset de uma página html). Pode haver duas razões para isso: 1 - Erro na montagem, fazendo com que o Linux tente forçar UTF-8 sobre uma mídia gravada em LATIN1. 2 - Erro na gravação, que não saiu com indicação do charset (também já encontrei CDs que montavam com nomes de arquivo errados, mas sempre achei que o problema é a gravação, já que são ALGUNS CDs, raros).
A primeira hipótese não é um problema, na verdade é um fato. Ela é gravada com LATIN1 por que é isso que o ISO-9660 faz. Bem, esse é o meu erro. Já a segunda hipótese pode ser um problema real. Vou verificar outros CDs. Se for isso não se repitirá em outras mídias (tenho muitas para testar ...)
Bem, meu primeiro impulso foi pensar que era um bug, procurei, mas não > achei nada. É difícil para mim acreditar que existe um bug dessa natureza > que ainda não foi encontrado. Então, modifiquei a minha teoria para um "bug > de usuário". > > O que estou fazendo de errado ? > > Os locales estão definidos como pt_BR.UTF-8. Então aqui está o seu erro! Você restringiu as opções de seu sistema. Além do locale padrão, você deveria ter acrescentado pt_BR (só). Assim ele saberá trabalhar com ambos os charsets. O meu arquivo /etc/locale.gen, por exemplo, está assim: pt_BR.UTF-8 UTF-8 pt_PT.UTF-8 UTF-8 en_GB.UTF-8 UTF-8 es_ES.UTF-8 UTF-8 pt_BR ISO-8859-1 pt_PT.UTF-8 UTF-8
Na verdade eu estou usando o pt_BR.UTF-8 mas tenho vários locales disponíveis (que é que você disse acima) Além disso, eu não informei, mas estou com o Dapper e o Dapper não tem um /etc/locale.gen, ele usa outra forma de definir os locales.
Também me certifiquei que o > output do CDROM está realmente em ISO-8859-1. > Vi alguma coisa na rede falando sobre os módulos nls, bem, eu levantei > todos os precaução (o que inclui o nls_utf8) !!! Que eu saiba isso é para outra coisa.
Bom, no man está escrito que para usar iocharset=utf8 é preciso que o kernel tenha habilitado aa opções "nls". No caso da dapper, elas estão em módulos, logo, eu levantei os módulos. Essa informação foi confirmada na internet. --
José Geraldo Gouvêa --
Cara, valeu pela ajuda. Agora eu devo presumir que isso está acontecendo apenas comigo, né ? Isso confirma uma coisa, não é bug, é configuração errada ! Ou então como disse, o CD está com problemas, eu não tinha pensado nisso; Valeu! -- João Felipe Mitre e-mail: [EMAIL PROTECTED] http://jfmitre.blogspot.com -- ubuntu-br mailing list [email protected] www.ubuntu-br.org https://lists.ubuntu.com/mailman/listinfo/ubuntu-br

