2

éなどのISO-8859-1文字をエンティティ番号に変換する方法がわからないようですé

「SteelDécor」のような文字列を取得できるようにしたい

é「 SteelDcor」に変換してもらいます

4

3 に答える 3

3

HTML で特殊な HTML エンコード文字 (<、& など) を気にしないと仮定すると、文字列に対する単純なループが機能します。

string input = "Steel Décor";
StringBuilder output = new StringBuilder();
foreach (char ch in input)
{
    if (ch > 0x7F)
        output.AppendFormat("&#{0};", (int) ch);
    else
        output.Append(ch);
}
// output.ToString() == "Steel D&#233;cor"

ステートメントは、正確なニーズに応じて、エスケープ文字や英数字以外などifも変更する必要がある場合があります。< 0x20

于 2010-11-25T16:27:23.360 に答える
1

LINQを使用する

string toDec(string input)
{
    Dictionary<string, char> resDec =
        (from p in input.ToCharArray() where p > 127 select p).Distinct().ToDictionary(
            p => String.Format(@"&#x{0:D};", (ushort)p));

    foreach (KeyValuePair<string, char> pair in resDec)
        input = input.Replace(pair.Value.ToString(), pair.Key);
    return input;
}
于 2011-03-25T07:07:51.157 に答える
1

HttpUtility.HtmlEncodeそれをします。ただし、System.Web.dll に存在するため、たとえば .NET 4 Client Profile では機能しません。

于 2010-11-25T15:09:17.183 に答える