Posted
Filed under C#
private string getWordByByte( string src, int byteCount )
{
System.Text.Encoding myEncoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987");

byte[] buf = myEncoding.GetBytes( src );

return myEncoding.GetString( buf, 0, byteCount );
}
string txtKor = "가나다라마";
string txtEng = "abcde";

Console.WriteLine( getWordByByte( txtKor, 5 ) );
Console.WriteLine( getWordByByte( txtEng, 5 ) );
가나
abcde


만약, byteCount를 5로 했을때 한글 3글자를 얻어오고 싶다면 함수 부분을 다음과 같이 수정해 주면 됩니다.

private string getWordByByte( string src, int byteCount )
{
System.Text.Encoding myEncoding = System.Text.Encoding.GetEncoding("ks_c_5601-1987");

byte[] buf = myEncoding.GetBytes( src );

string result = myEncoding.GetString( buf, 0, byteCount );

if( byteCount != result.Length )
{
result = myEncoding.GetString( buf, 0, byteCount+1 );
}


return result;
}
[원문] :http://grad.egloos.com/878185
2013/02/12 14:53 2013/02/12 14:53