éなどのISO-8859-1文字をエンティティ番号に変換する方法がわからないようですé
。
「SteelDécor」のような文字列を取得できるようにしたい
é
「 SteelDcor」に変換してもらいます
éなどのISO-8859-1文字をエンティティ番号に変換する方法がわからないようですé
。
「SteelDécor」のような文字列を取得できるようにしたい
é
「 SteelDcor」に変換してもらいます
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écor"
ステートメントは、正確なニーズに応じて、エスケープ文字や英数字以外などif
も変更する必要がある場合があります。< 0x20
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;
}
HttpUtility.HtmlEncode
それをします。ただし、System.Web.dll に存在するため、たとえば .NET 4 Client Profile では機能しません。