ripongao
Veterano
Registrado
755 Mensagens
94 Curtidas
que eu saiba tem de ter cuidado na leitura de arquivos não unicode, digo, tomar cuidado na suposta conversão.
Nativamente o windows usa funções que terminam com "W" (wide char) para ler caracteres unicode enquanto strings ansi terminam com "A".
Um exemplo é a função GetCommandLine para se ler a linha de comandos, a função unicode é GetCommandLineW enquanto para se ler ansi é GetCommandLineA.
O senhor pode fazer testes para ver as diferenças, escreva um texto comum no notepad e salve-o. Abra-o usando um editor hexadecimal e perceberá que os primeiros caracteres ASCII batem exatamente em posição/símbolos que os ANSI e são praticamente iguais, agora, no notepad salve o arquivo como UTF-8 -unicode- e perceberá que os caracteres ASCII também batem em posição/símbolos que os UNICODE, mas a codificação interna é diferente já que um símbolo/dígito/char necessita de 2 bytes ao invés de apenas 1, geralmente para idiomas ocidentais inserem um zero (zero geralmente significa EOS ou EOF -fim da string ou fim do arquivo-), com isso geralmente vai travar logo no 1o caracter/símbolo pois o zero vai ser tratado como o citado.
Em resumo, a letra "A" ou "a" ou "0" em ansi são representados por apenas um byte internamente no pc, enquanto para unicode são 2 ou mais bytes.
Desliguei-me do fórum. Conta canelada.