Windows-1251 키릴/러시아어 인코딩을 사용하면 포럼이 오류를 일으킴

러시아어인 경우 문자 인코딩이 Windows-1251로 설정되어 있으면 Discourse 포럼이 로드되지 않는 것으로 보입니다.

재현하려면 문자 인코딩을 "Cyrillic (Windows-1251)"으로 설정하고 포럼의 홈페이지를 방문하십시오. 그러면 빈 페이지만 표시됩니다. 콘솔에는 다음과 유사한 오류 메시지가 표시됩니다:

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

(두 개의 Discourse 포럼, 즉 Meta Discourse와 제 메인 포럼에서만 테스트해 보았습니다.)

왜 그렇게 하시나요? Discourse는 UTF-8을 사용하며, 이는 러시아어에도 정상적으로 작동합니다.

나도 직접 그렇게 하지는 않을 거예요. :slight_smile:

러시아의 한 사용자가 빈 화면만 표시되는 문제를 겪고 있었습니다. 원인을 파악하는 데 몇 시간이 걸렸고, 브라우저 인코딩을 Windows-1251로 설정하기 전까지는 재현할 수 없었습니다.

다른 러시아어 사용자들도 빈 화면 문제를 겪고 있는지 궁금합니다. 해당 설정은 사용자의 컴퓨터 운영체제(Windows) 수준에서 설정되어 있으며, 수동 설정 없이는 브라우저 문자 인코딩을 변경하는 쉬운 방법이 더 이상 없습니다. 브라우저의 인코딩 자동 감지 기능이 제대로 작동하지 않고 있습니다. Chrome과 Firefox를 모두 시도해 보았습니다.

러시아에서 여러 포럼을 운영하고 있습니다. 위에서 언급했듯이 UTF-8을 사용한다면 문제가 없습니다. 우리는 Windows-1251 인코딩을 실험하거나 설정하지 않았습니다. 왜 하겠습니까? UTF-8이 모든 상황에서 작동하기 때문입니다.

어떤 포럼에서도 빈 페이지가 표시되지 않았습니다. 브라우저가 windows-1251로 전환되지 않습니다.

세 가지 브라우저에서 Windows-1251을 강제로 노출하도록 시도해 보았습니다. 포럼이 utf-8인 경우 잘못된 인코딩만 표시될 뿐입니다. 빈 페이지는 관찰되지 않았습니다.

cp1251은 아직 완전히 사라지지 않았기 때문에, 일부 사용자의 브라우저가 여전히 이 인코딩을 기본값으로 사용하는 소식을 듣고 놀랍지 않습니다.

이번 달(2019년 12월 16일) 기준으로, 러시아(.ru) 도메인 사이트 중 약 11% 이상이 windows-1251을 사용하고 있습니다.

거기서 왜 보이지 않는지 정확히 알 수 없습니다. 저는 Chromium에서 이 브라우저 플러그인을 사용해 테스트해 보았습니다. (Firefox는 일부 사이트에서 문자 인코딩 메뉴를 비활성화하는 것 같습니다.)

방금 세 번째 Discourse 포럼으로 시도해 보았는데, 그쪽도 로드되지 않았습니다.

해당 사용자의 OS가 Windows-1251로 설정된 이유가 무엇인지 알 수 없습니다. 이런 일이 얼마나 자주 발생하는지 알아볼 예정입니다.

흥미롭네요. 이 플러그인을 사용하면 포럼에 흰색 페이지가 표시됩니다: https://toxu.ru 이 사이트에서 windows-1251 인코딩을 확인했습니다.

당신의 사이트를 방문하여 Windows-1251로 설정하면 빈 페이지와 이러한 오류(다른 사이트들과 동일한 오류)가 표시됩니다.

하지만 방금 사용자로부터 업데이트를 받았습니다. 해당 사용자는 Windows XP와 Chrome 49를 사용 중이므로, 이것이 문제의 원인이 될 가능성이 높습니다.

분석 데이터를 빠르게 검색해 본 결과, 지난 28일 동안 Windows XP에서 85명의 사용자가 281회 방문한 것으로 나타났습니다. 우리 사이트가 Windows XP를 지원할 필요는 없다고 생각하지만, 적어도 그 사람들에게 "이 사이트를 사용하려면 브라우저를 업그레이드하십시오"라는 메시지를 표시할 방법을 찾아보고 싶습니다.

해당 사용자에게 운영체제를 업그레이드하도록, 적어도 Linux로 업그레이드하도록 권장할 것입니다.

Chrome는 2016년 4월에 XP 지원을 중단했습니다. Firefox는 2018년 6월에 중단했으므로 Chrome보다 더 나은 대안입니다. 하지만 결국 사용자는 가능한 한 빨리 업그레이드해야 합니다.

보안 위험에 대해 경고하고, 원한다면 리눅스에 대한 지원을 제공하겠다고 제안할 계획입니다.

디버깅을 진행하면서 해당 요청이 들어올 때 확인해야 할 모든 사항을 긴 목록으로 정리했습니다. 다음을 위해 "Windows NT 5.1"과 브라우저 버전을 목록에 추가해야 합니다.