문자열을 바이트 단위로 잘라낸다.한글 2바이트, 영문 1바이트
/// <summary>
/// 문자열을 바이트 단위로 잘라낸다.한글 2바이트, 영문 1바이트
/// </summary>
/// <param name="sStr"></param>
/// <param name="nLen"></param>
/// <returns></returns>
public static string strSplitStringB(string sStr, int nLen)
{
StringBuilder sbSplitStr = new StringBuilder(); // 리턴할 문자열
string s = ((sStr == null) ? string.Empty : sStr.ToString().Trim());// 입력받은 문자열
int nCount = 0; // 문자열 카운트
if (s.Trim().Length == 0)
return sbSplitStr.ToString();
char[] aStrChr = s.ToCharArray();
if (aStrChr.Length != 0)
{
for (int i = 0; i < aStrChr.Length; i++)
{
int nTemp = Convert.ToInt32(aStrChr[i]);
if (nTemp < 0 || nTemp >= 128)
{
// 한글일 경우 2바이트
nCount += 2;
}
else
{
// 한글이 아닌경우 1바이트
nCount++;
}
if (nCount <= nLen)
{
sbSplitStr.Append(s.Substring(i, 1));
}
}
if (nCount > nLen)
{
sbSplitStr.Append("…");
}
}
return sbSplitStr.ToString();
}