Windows-1251 キリル文字/ロシア語エンコーディング使用時にフォーラムがクラッシュ

Discourseフォーラムは、ロシア語の文字エンコーディングがWindows-1251に設定されている場合、読み込まれないようです。

再現方法:文字エンコーディングを「Cyrillic (Windows-1251)」に設定し、フォーラムのホームページにアクセスすると、空白のページが表示されます。コンソールには、以下のようなエラーメッセージが表示されます。

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

(試したのは、Meta Discourseと私のメインフォーラムの2つのDiscourseフォーラムのみです。)

なぜそんなことをするのですか?Discourse は UTF-8 を使用しており、ロシア語にも対応しています。

私なら自分ではやりません。:slight_smile:

ロシアのユーザーが空白ページを表示していました。原因を特定するのに数時間かかり、ブラウザのエンコーディングを Windows-1251 に設定するまで再現できませんでした。

他のロシア語ユーザーも同様に空白ページを表示しているのか気になります。これは apparently OS レベル(Windows)で設定されており、ブラウザの文字エンコーディングを手動設定なしに変更するのは簡単ではありません。ブラウザのエンコーディング自動検出機能も十分に機能していないようです。Chrome と Firefox の両方で試しました。

ロシアにはいくつかのフォーラムが稼働しています。上記のように UTF-8 が使用されていれば問題はありません。エンコーディングを Windows-1251 に設定したり、実験したりする必要はありません。なぜなら、UTF-8 はすべてに対応できるからです。

どのフォーラムでも空白ページは表示されませんでした。ブラウザは Windows-1251 に切り替わりません。

3 つのブラウザで Windows-1251 を強制して試しましたが、フォーラムが UTF-8 で表示されている場合、エンコーディングが正しく表示されないだけで、空白ページは発生しません。

cp1251 はまだ廃れていないので、一部のユーザーがデフォルトで cp1251 を使用するブラウザを持っていると聞いても驚きません。

今月(2019 年 12 月 16 日)時点で、.ru ドメインのサイトの約 11% が windows-1251 を使用しています(Unable to Complete Request

なぜ表示されないのか分かりません。私は Chromium でテストするためにこのブラウザプラグインを使用しました。(Firefox は一部のサイトで文字エンコーディングメニューを無効にするようです。)

もう一つの Discourse フォーラムでも試してみましたが、これも読み込まれません。

なぜそのユーザーの OS が Windows-1251 に設定されているのか分かりません。これがどの程度頻繁に発生しているか調べてみます。

興味深いですね、ご覧ください。このプラグインを使用すると、フォーラムに白いページが表示されます:https://toxu.ru このサイトのエンコーディングは windows-1251 でした。

サイトを訪れて Windows-1251 に設定すると、空白のページが表示され、以下のエラーが発生します(他のサイトと同じエラーです)。

ただし、ユーザーから新しい情報が入ってきました。彼らは Windows XP に Chrome 49 を使用しているため、おそらく問題の原因はそこにあるようです。

分析ツールで簡易検索を行ったところ、過去 28 日間で Windows XP を使用したユーザー 85 名による訪問が 281 回ありました。当サイトが Windows XP をサポートする必要はないと感じていますが、少なくとも「このサイトを利用するにはブラウザをアップグレードしてください」というメッセージを表示する方法を見つけたいと考えています。

このユーザーには、OS を少なくとも Linux までアップグレードするよう提案する予定です。

Chrome は 2016 年 4 月に XP への対応を終了しました。Firefox は 2018 年 6 月に終了しましたが、Chrome よりも優れた代替手段です。ただし、最終的にはユーザーはできるだけ早くアップグレードすべきです。

セキュリティ上のリスクについて警告し、必要であれば Linux でのサポートも提供することを伝えようと思います。

デバッグ中に、そうしたリクエストが来た際に確認すべき事項を長々とリスト化しました。次回は「Windows NT 5.1」とブラウザのバージョンもリストに追加する必要があります。