Fórum quebra ao usar codificação Windows-1251 Cirílico/Russo

Parece que os fóruns Discourse não carregam se a codificação de caracteres estiver definida como Windows-1251 para russo.

Para reproduzir o problema, defina a codificação de caracteres como “Cirílico (Windows-1251)” e acesse a página inicial de um fórum. A página ficará em branco. Há mensagens de erro no console que se parecem com isto:

Uncaught SyntaxError: Invalid regular expression: 
/^[^A-Za-zГЂ-ÖØ-Г¶Гё-КёМЂ-Цђа Ђ-бїїв°Ђ-п¬њп·ѕ-п№Їп»Ѕ-пїї]*[Ц‘-Яїп¬ќ-п·Ѕп№°-п»ј]/: 
Range out of order in character class
    at new RegExp (<anonymous>)

(Tentei apenas com dois fóruns Discourse: o Meta Discourse e meu fórum principal.)

Por que você faria isso? O Discourse usa UTF-8 e isso funciona para o russo também.

Eu não faria isso pessoalmente. :slight_smile:

Um usuário na Rússia estava recebendo uma página em branco. Levou várias horas para descobrir a causa, e eu só consegui reproduzir o problema quando configurei a codificação do meu navegador para Windows-1251.

Estou me perguntando se outros usuários de língua russa também estão enfrentando páginas em branco. Aparentemente, isso está configurado no nível do sistema operacional (Windows) no computador dele, e não há mais uma maneira fácil de alterar a codificação de caracteres do navegador sem alguma configuração manual. Os recursos de detecção automática de codificação dos navegadores não estão funcionando bem. Tentamos no Chrome e no Firefox.

Temos vários fóruns operando na Rússia. Não há problema se, como mencionado acima, for utilizado UTF-8. Não testamos nem configuramos a codificação Windows-1251. Para quê? O UTF-8 funciona para tudo.

Nenhum dos fóruns apresentou uma página em branco. O navegador não alterna para Windows-1251.

Testei em três navegadores forçar a exibição em Windows-1251. Se o fórum estiver em UTF-8, obtemos apenas a codificação incorreta. Não foi observada nenhuma página em branco.

cp1251 ainda não morreu, então não estou surpreso ao ouvir que alguns usuários ainda têm um navegador que o define como padrão.

A partir deste mês (16/12/19), pouco mais de 11% dos sites .ru usam windows-1251.

Não tenho certeza do motivo pelo qual você não está vendo isso lá. Usei este plugin de navegador no Chromium para testar. (O Firefox parece desativar o menu de codificação de caracteres em alguns sites.)

Acabei de tentar com um terceiro fórum Discourse, e esse também não carrega.

Não sei por que aquele usuário tem o sistema operacional configurado como Windows-1251. Vou tentar descobrir com que frequência isso está acontecendo.

Interessante, por favor, dê uma olhada: com este plugin, aparece uma página em branco no fórum: https://toxu.ru. Verifiquei a codificação windows-1251 neste site.

Quando visito seu site e o configuro para Windows-1251, recebo uma página em branco e esses erros (os mesmos dos outros sites).

Acabei de receber uma atualização do usuário — ele está usando Windows XP com o Chrome 49, então isso provavelmente é a origem do problema.

Fiz uma busca rápida nas análises e houve 281 visitas de 85 usuários com Windows XP nos últimos 28 dias. Não sinto que nosso site precise dar suporte ao Windows XP, mas gostaria de encontrar uma maneira de, pelo menos, exibir a essas pessoas uma mensagem dizendo “atualize seu navegador para usar este site”.

Vou recomendar que esse usuário atualize o sistema operacional, pelo menos para Linux.

O Chrome abandonou o XP em abril de 2016. O Firefox abandonou em junho de 2018, então é uma alternativa melhor que o Chrome. Mas, no final, o usuário deve fazer a atualização o mais rápido possível.

Vou avisá-los sobre os riscos de segurança e oferecer ajuda com o Linux, caso queiram fazer isso.

Durante a depuração, fiz uma longa lista de tudo o que verificar quando essas solicitações chegarem. Preciso adicionar “Windows NT 5.1” e as versões do navegador à lista para a próxima vez.