Web フォームからフィールドを取得し、入力をデータベースに保存しようとしています。現在、非改行スペースを「+」記号に置き換えています(つまり、「Test 2」=「Test + 2」)。以下に示すように、文字列の + を置き換えて「」に置き換えるハックがあります。 "。
私はこれが短期的な解決策であることを知っています。私は 'Encoding.GetEncoding("UTF-8") がそれを処理すると思っていたでしょう。あらゆる種類の文字を説明する何らかのエンコーディングを見つけたいと思います。以下のコードを参照してください。
private List<Alias> GetAliasesFromPost()
{
List<Alias> aliases = new List<Alias>();
using (StreamReader sr = new StreamReader(Request.InputStream, Encoding.GetEncoding("UTF-8")))
{
string[] postedValues = sr.ReadLine().Split('&');
for (int i = 0; i < postedValues.Length; i++)
{
if (postedValues[i].StartsWith("urlAlias="))
{
Alias alias = new Alias();
string active = postedValues[i - 1].Replace("active=", string.Empty);
alias.Active = string.Compare(active, "on", true) == 0;
alias.UrlAlias = postedValues[i].Replace("urlAlias=", string.Empty);
alias.Notes = postedValues[i + 1].Replace("notes=", string.Empty).Replace("+", " ");
int Id = 0;
Int32.TryParse(postedValues[i + 2].Replace("id=", string.Empty), out Id);
alias.Id = Id;
aliases.Add(alias);
}
}
}
return aliases;
}