영문의 경우 StreamReader 를 사용하면 아무런 문제없이 정상적으로 읽혀졌으나, 한글의 경우 문자가 깨져버려서 데이터를 정상적으로 읽을 수 없는 것이었다.
아래 그림은 예를 보이기 위해 만든 텍스트 파일의 내용이다.
위 그림과 같은 텍스트 파일을 테스트용으로 만들었다.
아래 그림은 텍스트 파일을 읽기 위해 간단히 작성한 소스코드이다.
위와 같이 작성한 코드를 컴파일 후 실행시켜보면 아래와 같이 나온다.
위 그림에서 알 수 있듯이 영문은 상관이 없으나 한글의 경우 모두 깨져버린다.
아마도 이것은 영어가 아닌 언어에 대해서는 모두 같은 결과가 나타날 것이다.
이렇게 텍스트 파일에서 읽어들일 때 한글이 깨져버리는 문제로 인해 한참을 찾아보았다.
하지만 인터넷에서도 그다지 이에대한 내용을 찾기 힘들었고 책에서도 찾아볼 수 없었다.
그렇게 삽질을 하던 중 문득 StreamReader 의 생성자 옵션에 뭔가 있지 않을까 하는 생각이 들었다.
아니나 다를까 StreamReader 의 생성자에 인코딩에 대한 옵션이 있었다.
그래서 위의 소스코드를 아래와 같이 수정하였다.
위 소스코드에서 빨간색으로 표시된 부분이 추가된 부분이다.
여기서 Default 로 설정한다는 것은 운영체제에서의 Default 를 말한다.
즉, 한글 윈도우즈를 사용한다면 Default 로 설정하면 된다.
Encoding 의 옵션에서는 UTF-8, Unicode 등의 몇가지 옵션을 선택할 수 있다.
위와 같이 수정한 후 결과를 출력해보면 아래와 같다.
수정된 소스코드의 실행 결과는 위 그림과 같이 한글이 정상적으로 읽혀지는 것을 알 수 있다.
TRACKBACK 1 AND
COMMENT 2

이올린에 북마크하기
이올린에 추천하기
PREV