의 open()
을 사용하여 임의의 서버에서 파일을 가져 오려고합니다. 서버는 파일에 대한 Content-Type을 지정할 수 있습니다. text/calendar; charset=utf-8
또는 text/calendar; charset=ISO-8859-1
입니다.이 경우 open()
은 서버가 주장하는대로 charset이 있다고 믿습니다. 그러나 서버가 charset을 지정하지 않으면 open()
은 charset이 "ASCII-8BIT"라고 가정합니다. 대신 text/calendar
(즉, "iCal 파일")은 "UTF-8"로 인코딩되어야하므로 open()
은 문자 세트가 "UTF-8"(문자 세트가 지정되지 않은 경우)이라고 가정합니다.open-uri를 사용하여 기본 문자 집합을 지정하지만 서버 제공 문자셋을 사용하는 경우
charset이 지정되어 있지 않은 경우에만 문자를 사용한다고 가정합니다. 왜냐하면 나는 문자셋이 무엇이든지간에 파일을 선택적으로 제공하기 위해 서버의 결정을 존중하고 싶기 때문입니다..
open('http://my-test-uri.test', 'r:UTF-8')
을 시도했지만, 서버가 "ISO-8859-1"과 같은 다른 문자 집합을 지정하더라도 무조건 charset을 무시합니다.