2009년 07월 27일
웹 페이지 charset 알아내기
이것이 100% 모든 사이트에 적용되지는 않을것 같지만.. 현재 우리나라 사이트에 대해서는
아직까지 잘 동작하는 코드 인것 같다.
아래 코드는 다음 url 을 참조로 하여 작성하였다.
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=94051
이 글에 따르면 contentType 이 "text/" 로 시작되며, charset에 대한 정보가 없을시,
HttpWebResponse.CharacterSet 은 항상 "ISO-8859-1" 문자열을 리턴한다고 되어 있다.
그래서 나는 다음과 같이 charset 을 판단하도록 코딩하였다.
if (contentType.StartsWith("text/") && contentType.IndexOf("charset") >= 0) // charset 에 대한 정의가 되어 있다면
return response.CharacterSet; // 그대로 response 객체의 charset 을 리턴
else
조사하고자 하는 페이지 소스의 제일 처음에 나오는 chartset= 에 대응하는 값을 읽어와 리턴
## 혹시라도 추가사항이나 이게 아니다 싶은 곳이 있으면 거침없이 답글 달아 주시면 감사하겠습니다.
아직까지 잘 동작하는 코드 인것 같다.
아래 코드는 다음 url 을 참조로 하여 작성하였다.
http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=94051
이 글에 따르면 contentType 이 "text/" 로 시작되며, charset에 대한 정보가 없을시,
HttpWebResponse.CharacterSet 은 항상 "ISO-8859-1" 문자열을 리턴한다고 되어 있다.
그래서 나는 다음과 같이 charset 을 판단하도록 코딩하였다.
if (contentType.StartsWith("text/") && contentType.IndexOf("charset") >= 0) // charset 에 대한 정의가 되어 있다면
return response.CharacterSet; // 그대로 response 객체의 charset 을 리턴
else
조사하고자 하는 페이지 소스의 제일 처음에 나오는 chartset= 에 대응하는 값을 읽어와 리턴
## 혹시라도 추가사항이나 이게 아니다 싶은 곳이 있으면 거침없이 답글 달아 주시면 감사하겠습니다.

# by | 2009/07/27 14:14 | C# | 트랙백 | 덧글(0)






☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]