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.