Página 1 de 1

Salvando arquivo .txt em modo ANSI em vez de UTF-8

Enviado: Seg Jun 06, 2016 1:48 pm
por icarodantas123
Galera eu estou tentando salvar umas coisas em um arquivo.txt do game maker, essas coisas tem acentos,etc... Estou usando file = file_text_open_write('last.txt'), porém quando eu salvo as coisas, fica tudo acanalhado com os acentos bugados :/

Re: Salvando arquivo .txt em modo ANSI em vez de UTF-8

Enviado: Seg Jun 06, 2016 3:00 pm
por gabrielsch
O manula do Game Maker fala sobre essa situação:
Please note that for games with localizations it is very important that accented letters can be read from external files. This means that you should create the txt file in UTF8 format first and then add it intoGameMaker: Studio as an included file so that it is exported on running the game and used instead of the default ANSI format txt file that is created by the GameMaker: Studio file functions when no file is previously supplied. In this way, you can read and write to it correctly with all accents and non-roman letters being maintained.
Para contornar esse problema basta criar um arquivo .txt com codificação UTF8 e adicionar aos included files do seu projeto, o arquivo não precisa ter nada escrito nele, um arquivo em branco já serve, basta o mesmo ter a codificação desejada.

Re: Salvando arquivo .txt em modo ANSI em vez de UTF-8

Enviado: Seg Jun 06, 2016 4:43 pm
por icarodantas123
Estou usando agora o http_get mas ele já pucha tudo bugado, ai usei a solução do rodrigo santiago, mas parece que na hora de fazer o código eu errei em algo...

Código: Selecionar todos

text = argument0;
for(i=1;i<=string_length(text);i++)
{
text = string_set_byte_at(text, i, ansi_char(string_byte_at(text, i)));
}
return text;
Edit:
ÉÉÉ eu fiz esse método agora, mas na hora do http_get_file ele já troca o arquivo direto pra ANSI... :/
E como já mencionado anteriormente, se usar http_get ele traz os caracteres tudo errado também :/

Re: Salvando arquivo .txt em modo ANSI em vez de UTF-8

Enviado: Seg Jun 06, 2016 6:07 pm
por KlabberyBlue
Cara então salve com a codificação Unicode ou Unicode Big Endian.
Tente uma das duas, talvez funcione...

Se for o caso de erro, em código faça um novo tópico, pedindo ajuda :).
Espero ter ajudado -------NEO!---------
Vlw!
Flw!
E fui!

Re: Salvando arquivo .txt em modo ANSI em vez de UTF-8

Enviado: Seg Jun 06, 2016 9:49 pm
por chicoweb
Rapaz isso ai eu tive uma dor de cabeça para resolver.

Não aidantou salvar como utf8, também não adianta configurar ele lá no server para ser utf8 ou outro formato, o gms sempre borroca tudo, o melhor jeito que eu criei na raça um script para isso.

É um script beta mas ja codifica o "ão" e o "á" para pegar os outros caracteres é fácil tem uma rotina no próprio scritp que exibe o código da letar na debug windows, ai depois é só colar a linha na parte de replace.

Vou postar aqui tá liberado se a galera quiser terminar ele: 

Código: Selecionar todos

/// Script utf8_decode by chicoweb

// Resolve problema de caracteres estranhdos quando volta de uma http_get por exemplo
// Chamada simples: minhavar = utf8_decode("texto desconfigurado")

// Texto a ser ajustado
str_data = argument0

// conforme for aparecendo vou implementadno aqui direto pelo chr
t = str_data
t = string_replace_all(t,chr(207),"ÃO")
t = string_replace_all(t,chr(96),"A")

// Aqui vc cata o código da letra em utf8
// ---------------------------------------------------
verifica_utf8 = true
if verifica_utf8{
    // ELE VAI exibie na debug uma tabela com so codes ascii e vai parar com uma msgbox
    // Na enesima palavra que vc escolheu
    palavra_quant = string_length(str_data)
    show_debug_message("=======================================================")
    show_debug_message("UTF8 TAB CODE AUX")
    show_debug_message("=======================================================")
    i = 0
    repeat palavra_quant{
        i += 1
        show_debug_message(string_char_at(str_data,i) + " = " + string(string_ord_at(str_data,i)))    
    }
    show_message("Check UTF8")
}

// retorno da função principal
return t 
Por exemplo o texto é 
"Fui na casa do Antônio"
Vai sair uma porcaria do tipo:
"Fui na casa do AntÊÑüio"

Aí vc pega a quinta palavra que e Antonio e joga no 

palavra_quant = 5

Dái vai aparecer uma tabela e vcvai ver o codigo do "ÊÑü" que vc sabe que é o "ô"
Então joga no script principal:

t = string_replace_all(t,chr(codexibidonadebug),"ô")

Porque vc nao acabou o script chicoweb?????
porque eu não quiz...

Zueira, preguiça mesmo, porque eu só precisava decodificar o Á e o ÃO