한 줄에 단어가 너무 길면 단어 분리 태그를 삽입하는 기능을 구현하고 싶습니다.html로 인코딩 된 특수 문자로 분할하지 않고 길이별로 단어 분리 기능을 활성화하는 방법
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로 인코딩이 포함 된 경우? ß
안에 TAG 삽입을 방지하려면 어떻게해야합니까? 브라우저에 표시되는 실제 문자열 길이를 계산하려면 어떻게해야합니까? 는 ♡♥
♡ ♥ 같은 문자열은 브라우저에서만 2 문자 (마음)를 포함하지만, 그 길이 당신은 당신이 경우, 다음이 무엇인지 살펴보다 &을 발견 할 때, 문자로 전체 텍스트 문자를 통과해야하는 14
'HtmlEncode'와'HtmlDecode' 메소드는 대칭이 아닙니다. 디코딩은 엔티티를 단일 문자로 변환하지만 인코딩은 이러한 모든 문자를 다시 엔티티로 변환하지 않습니다. 또한 원본 텍스트가'<'와 같은 문자와 '<'과 같은 엔티티를 포함하는 경우, 디코딩 후 이들을 구별 할 방법이 없습니다. –
나는 HtmlDecode를 전혀 사용하지 말아야한다는 것을 의미했다. 하지만 출력이 유니 코드 여야합니다. – svick
완벽하게 작동합니다. <와 같은 문자는 허용되지 않습니다. –