わかりやすい URL を必要とする Web アプリケーションを作成していますが、7 ビット以外の ASCII 文字を処理する方法がわかりません。アクセント付きの文字を URL エンコードされたエンティティに置き換えたくもありません。この種の変換を可能にする C# メソッドはありますか、それとも、処理したいすべてのケースを実際にマッピングする必要がありますか?
7 に答える
UTF-8 を使用します。
非 ASCII 文字は最初に UTF-8 [STD63] に従ってエンコードする必要があり、次に対応する UTF-8 シーケンスの各オクテットをパーセントでエンコードして URI 文字として表す必要があります。— RFC 3986
わかりました-ここにいくつかの良い答えがあります。それらの方法は機能します。しかし、私はあなたの基本的な前提に疑問を持たなければなりません。あなたが議論しているこれらの値は、基本的にクエリ文字列パラメーターになると思いますよね?これが、特殊文字を除外する必要がある最も一般的な理由です。
2 ~ 3 年間、文字列のエンコード/デコードのアプローチを使用して、クエリ文字列を介してこのようなものを渡しました。断続的な問題が常にありました。というのは、非常に多くの異なる特殊文字の可能性があり、あるブラウザーと別のブラウザーで問題があるなどです。2005 年、私が取り組んでいたシステムの多くを書き直していたときに、クエリ文字列を介して id 値のみを渡すように移行することにしました。このアプローチは非常にうまく機能しており、欠点は思い浮かびません。データベースのバックエンドがある場合は、ほとんどすべての文字列に既に ID が関連付けられています。これが検索などの目的である場合は、いつでもフォーム ポスト経由で送信できます。または、AJAX ソリューションを使用することもできます。
これらの方法がすべての状況に最適であるとは限りません。ここには他のどこよりも特効薬はありませんが、このアプローチはシンプルで、私と私のチームにとって非常に機能的でした。少なくとも検討する必要があります。
(ブラウザでコピー&ペースト、動作しますか?)