Erro de decodificação



  • Estou com um problema muito chato aqui. O QtCreator não detecta a decodificação (UTF-8) do código e não me autoriza editá-lo. Tenho, toda vez que abrir o QtCreator, determinar a codificação do sistema como padrão para funcionar.



  • tools>options>text editor>behavior

    procura por: "default encoding".

    e ve se resolve



  • Já fiz isso, e nada :(



  • Windows ou Linux?



  • Nos dois tem dado a mesma coisa... Mas estou usando Windows,



  • Estranho. Qual versão do QtCreator vc está usando? Aqui uso o 2.7.0.

    Tente abrir este arquivo "aqui":http://www.quati.info/teste.txt.utf8

    Apesar da extensão, é um TXT em UTF-8. Aqui abre normalmente.



  • Se era pra apenas abrir no navegador, abriu normalmente sem nenhum erro de acentuação.



  • No browser não. Clica em salvar como, e abre no Creator. Tá codificado em UTF-8.



  • Abriu normalmente no Qt Creator.



  • Muito estranho mesmo. Se vc sempre tem que selecionar o codec certo para editar, qual a codificação que ele diz que está o documento (que ele autodetecta)?

    O QtCreator usa uma função que lê o arquivo, e lá dentro chama uma função que detecta o codec (que é está em Utils::TextFileFormat). Caso a detecção não funcione, ele usa a codificação padrão configurada para abrir o documento.

    @
    if (bytesRead >= 4 && ((buf[0] == 0xff && buf[1] == 0xfe && buf[2] == 0 && buf[3] == 0)
    || (buf[0] == 0 && buf[1] == 0 && buf[2] == 0xfe && buf[3] == 0xff))) {
    result.codec = QTextCodec::codecForName("UTF-32");
    } else if (bytesRead >= 2 && ((buf[0] == 0xff && buf[1] == 0xfe)
    || (buf[0] == 0xfe && buf[1] == 0xff))) {
    result.codec = QTextCodec::codecForName("UTF-16");
    } else if (bytesRead >= 3 && ((buf[0] == 0xef && buf[1] == 0xbb) && buf[2] == 0xbf)) {
    result.codec = QTextCodec::codecForName("UTF-8");
    result.hasUtf8Bom = true;
    }
    @



  • Olá,

    Tive uns problemas semelhantes no Fedora 18 64, usando Qt 5.0.2 com o creator 2.7.0.
    Além do problema ora citado, também tinha o problema de não permitir
    acentuação quando digitavao o código.
    O creator somente aceitava o 'ç'. Se digitasse ã aparecia ~a por exemplo.
    O interessante é que quando eu compilava e executava uma aplicação o QLineEdit também tinha o mesmo comportamento.

    Instalei o Qt 5.1.0 o qual vem com o QtCreator 2.7.2 e o problema deixou de acontencer.

    Bem.. é isso. Achei que deveria informar desse fato.

    Abraços



  • volnei

    No meu FC18 64 também acontece isso. Mas ao clicar no layout do teclado do Fedora, na parte a direita acima (gnome) resolve, mesmo mostrando o layout de teclado correto. Provável bug do Qt mesmo.

    No caso do arquivo que não reconhece o UTF-8, se não existir os 3 caracteres de controle ("BOM":https://en.wikipedia.org/wiki/Byte_order_mark) no início do arquivo fica a cargo do próprio Qt adivinhar.



  • Oi,
    No meu caso uso o KDE, mudei o layout de teclado algumas vezes para
    verificar o caso, mas nada resolve o "bug".
    Eu acho que é um bug mesmo até porque no Qt 5.1 e Creator 2.7.2 isso se resolveu.

    Abraços



  • Eu tive um problema desses com alguns ficheiros de um projeto, não sei se aconteceu porque eu abria o projeto tanto no windows como no linux (tenho um dualboot no PC). Solução: criei um ficheiro novo no QtCreator com outro nome, fiz copy paste do ficheiro que dava o erro para este novo ficheiro. Depois no explorador, apaguei o ficheiro que dava erro e alterei o nome do novo ficheiro para substituir o ficheiro apagado.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.