728x90
반응형
안녕하세요! 입력된 문자가 어느나라 문자인지 판별하는 함수를 소개합니다.
// OneByteChar = 영어
public enum LanguageType
{
Korean,
KoreanJaum,
KoreanMoum,
Japanese,
Chinese,
OneByteChar,
UnKnown,
OverBound
}
이렇게 상수 선언합니다.
public LanguageType GetLanguageType(string sourceString)
{
if (sourceString.Length > 2) return LanguageType.OverBound;
byte[] _tmp = System.Text.Encoding.Default.GetBytes(sourceString);
if (_tmp.Length != 2) return LanguageType.OneByteChar;
if ((_tmp[1] > 0xFE) || (_tmp[1] < 0xA1)) return LanguageType.UnKnown;
if ((_tmp[0] >= 0xB0) && (_tmp[0] <= 0xC8)) return LanguageType.Korean; //완성형 문자
else if (_tmp[0] == 0xA4) //한글 자모
{
if (_tmp[1] >= 161 && _tmp[1] <= 190) return LanguageType.KoreanJaum; //자음
else return LanguageType.KoreanMoum; //모음
}
else if ((_tmp[0] >= 0xCA) && (_tmp[0] <= 0xFD)) return LanguageType.Chinese; //한글 한자
if ((_tmp[0] >= 0xAA) && (_tmp[0] <= 0xAB)) return LanguageType.Japanese; //일본 가나
return LanguageType.UnKnown;
}
예상결과)
// 함수자체가 한글자씩 비교하는 구문이기 때문에 이 코드로 분리해서 체크합니다.
string strHan = "한글";
string sOneChar = strHan.Substring(i, 1);
LanguageType ex = GetLanguageType(sOneChar);
ㄴ ex = KoreanJaum
반응형
'개발 > C#' 카테고리의 다른 글
[2022.02] MSMQ를 이용해 프로세스 간 메시지 송/수신 처리하기 (0) | 2022.02.22 |
---|---|
[2021.09] fo-DICOM Log4Net 사용방법 (0) | 2021.09.06 |
[2021.06] C#에서 Cross-Thread Operation not valid 오류 (0) | 2021.06.09 |
[2021.05] Enum을 Combobox에 값을 넣을 때 Foreach 문 활용방법 (0) | 2021.05.14 |
[2021.05] 모니터 해상도 및 배율에 따른 예외 처리 (0) | 2021.05.10 |