오른쪽 클릭 메뉴 컨텍스트를 사용할 때 Windows는 파일 경로를 원시 (바이트) 문자열 유형으로 전달합니다. 예를 들어코드 페이지를 미리 모르는 상태에서 원시 바이트 문자열을 유니 코드로 변환
: 내 응용 프로그램에서
path = 'C:\\MyDir\\\x99\x8c\x85\x8d.mp3'
많은 외부 패키지는 unicode
유형 문자열을 기대하고, 그래서 나는 unicode
로 변환해야합니다.
원시 문자열의 인코딩을 미리 알면 쉽게 될 수 있습니다 (예 : cp1255
). 그러나 어떤 인코딩이 전 세계의 각 컴퓨터에서 로컬로 사용되는지는 알 수 없습니다.
string
을 unicode
으로 변환하려면 어떻게해야하나요? 아마도 win32api
을 사용하고 있을까요?
ASCII는 항상 유니 코드로 변환 할 수있는 코덱입니다. 그냥'.decode ('ASCII')'입니다. ASCII가 아니라 인코딩 된 바이트를 의미합니다. –
일반적으로 인코딩을 모른 채 문자열을 유니 코드로 디코딩 할 수는 없습니다. 텍스트가 ASCII가 아닌 알 수없는 인코딩입니다. – BrenBarn
예가 * cp1255가 아닙니다. 해당 코덱을 사용한 디코딩이 실패합니다. UTF-16이 아니기 때문에 Windows가 파일 이름에 내부적으로 사용하는 것만 큼 놀라운 것입니다. –