asp.net Web サイトで、ユーザーが、ファイル名に emdash を含む電子メールの添付ファイルとしてファイルをアップロードしようとしました。これを電子メールの添付ファイル (Exchange サーバー) として送信すると、ファイルは _utf8_B_ * ** * .datに変換されました
したがって、.aspx ページでは、Request.Files コレクションの一部としてアップロードされたファイルのファイル名に emdash が存在するかどうかを検出できる必要があります。
string s = "a—b-";
byte[] arr = Encoding.ASCII.GetBytes(s);
foreach (byte element in arr)
{
Response.Write(element.ToString() + ",");
}
上記の文字列には、2 番目の文字としてエムダッシュがあり、4 番目の文字として通常のハイフンがあります。
上記のコードは、画面に 97,63,97,45 を出力します。
emdash は有効な ASCII 文字ではないため、エラーがスローされるか、有効な ASCII 文字ではないことが示されると想定しました。それでも 63 を返します。
ファイル名の emdash を検出して、「ファイル名に無効な文字が含まれています」とユーザーに伝えるにはどうすればよいですか? この問題に関する他の質問を見てきましたが、それらを機能させることができません。