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 );
}
{
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 ) );
string txtEng = "abcde";
Console.WriteLine( getWordByByte( txtKor, 5 ) );
Console.WriteLine( getWordByByte( txtEng, 5 ) );
가나
abcde
만약, byteCount를 5로 했을때 한글 3글자를 얻어오고 싶다면 함수 부분을 다음과 같이 수정해 주면 됩니다.
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;
}
{
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