RX0163

Domínio: Análise sintática

Mensagem de erro

um script que não é UTF-8: %s (%s)

Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.

A história

Seu script tem bytes que não formam UTF-8 válido, e o motor recusou o arquivo inteiro antes de ler. Vamos entender. Um arquivo RushScript é texto, e o texto é sempre UTF-8. Cada sequência de bytes, dentro de uma string ou de um comentário, precisa formar um caractere inteiro e na forma mais curta. O arquivo é recusado se tem um byte de continuação solto, uma sequência cortada no meio, uma forma desnecessariamente longa, um substituto, ou um ponto de código acima de U mais dez ffff. A mensagem nomeia o arquivo, a linha e a posição em bytes da primeira sequência ruim. Antes, esse problema aparecia como uma recusa genérica em outro lugar, e confundia. E o motor também nunca leva esses bytes adiante para imprimir aqueles caracteres embaralhados, o mojibake. A causa mais comum é um arquivo salvo em outra codificação, como Latin-1 ou Windows-1252, com letras acentuadas. Exemplo: a palavra ação gravada em Latin-1. A correção: abra o arquivo no editor e salve-o de novo como UTF-8.

Texto do catálogo de erros do motor do Rush.