Я хотел бы реализовать функциональность, которая вставляет разрывную метку, если слово слишком длинное, чтобы появиться в одной строке.
protected string InstertWBRTags(string text, int interval)
{
if (String.IsNullOrEmpty(text) || interval < 1 || text.Length < interval)
{
return text;
}
int pS = 0, pE = 0, tLength = text.Length;
StringBuilder sb = new StringBuilder(tLength * 2);
while (pS < tLength)
{
pE = pS + interval;
if (pE > tLength)
sb.Append(text.Substring(pS));
else
{
sb.Append(text.Substring(pS, pE - pS));
sb.Append("​");//<wbr> not supported by IE 8
}
pS = pE;
}
return sb.ToString();
}
Проблема в том, что я могу сделать, если текст содержит специальные символы в кодировке html?
Что я могу сделать, чтобы предотвратить вставку тега внутрь ß
?
Что я могу сделать, чтобы посчитать реальную длину строки (которая отображается в браузере)?
Строка типа ♡♥
♡ ♥ содержит только 2 символа (сердца) в браузере, но ее длина составляет 14.