あなたが書いた要件には良い要件の特徴がありません。具体的には、それはまとまりがなく、アトミックでもなく、明確でもありません。これらの特性がないため、簡単に検証することもできません。
初期状態の要件は次のとおりです。
ダウンロードしたファイル名には非ASCII文字が含まれている可能性があり、これを処理してもアプリケーションがクラッシュすることはありません
「...そしてこの処理はアプリケーションをクラッシュさせない」を削除することをお勧めします。あるソフトウェアが何かをする必要があるという要件がある場合、ソフトウェアをクラッシュさせることなくそれを行うべきであるという仮定を立てることは問題ないと思います。
これにより、要件は次のように変換されます。
ダウンロードしたファイル名に非ASCII文字が含まれている可能性があります
さて、あなたはまとまりがありアトミックな要件を持っています。しかし、それが明確であることは確かではありません。あなたの質問では、いくつかの異なる形式に言及しています。いくつかのオプションがあります。
一部の人は、サポートする必要のある各ファイル名エンコーディングに対して個別の固有の要件を推奨します。これは、まとまりのある、アトミックな、追跡可能な、明確な、検証可能な要件を最もよくサポートします。また、各要件の重要性を指定しやすくなります。おそらく、一部のエンコーディングのサポートはより重要であるか、より早く必要になります。
他の人は、サポートされている形式の表を推奨する場合があり、この要件は表にリンクします。完成度は低くなりますが(テキスト文とメンテナンスするテーブルがあります)、それらは同じドキュメントまたはデータベースにあります。ただし、要件管理ツールでリンクを実行する場合は、それらをリンクして、1つの変更がリンクされた要件を強調するようにすることができます。また、テキストを他のソフトウェアパッケージにそのまま流し込むこともできますが、エンコーディングが異なるとテーブルも異なります。
ただし、要件を文書化する方法は、特定のニーズによって異なります。