ⓟrogramming/.net
C# 한글,영문 같이 길이 짜르기
가이브
2010. 4. 29. 17:30
예로 게시판에서 제목이 길어 잘라먹을 때, String.Substring으로 갯수로 자르면
한글 30자 -> 길이는 60byte.
영문 30자 -> 길이는 30byte.
한글에 맞추면 영어는 터무니없이 반토막난다.
가나다라마 가나다라마 가나다라마 가나다라마 가나다라마 가나다...
ABCDE ABCDE ABCDE ...
뭐 대충 이렇게 되겠지. 같이 30개 만큼 짤랐으니..
title = title.Substring(0, 28) + "...";
간단하게 다음과 같이.
string TitleCut(string title)
{
// 한글 2byte 갯수를 계산
int hanLength = (Encoding.Default.GetByteCount(title)-title.Length) / 2;
if (Encoding.Default.GetByteCount(title) > 55)
return title.Substring(0, 53 - hanLength ) + "..";
else
return title;
}
일단 1byte로 Substring을 한다.
2byte문자를 1byte문자인척(?) 해주면.. -_-
반응형