2014-09-09 3 views
4

코덱 누락 문제가 발생했습니다. 이미 설명한 내용은 here입니다. 그러나 제공된 해결책은 원래 문제를 해결하여 다른 문제를 수정했습니다. 그러나 나는 지금 같은 일을 경험하고 있으며, 이번에는 해결 방법이 없다.Kivy (python-for-android) 코덱 누락

Windows-1250 인코딩에 HTML 페이지가 있습니다. 나는 htmlRequest = requests.get(url)을 가져 와서 그것을 명시 적으로 인코딩을 htmlRequest.encoding = 'windows-1250'으로 지정해야합니다. 그런 다음 htmlRequest.text을 읽으면 내용을 올바르게 해독해야하며 실제로 Win과 Linux에서 모두 작동하지만 Android에서는 특수 문자 대신 공백 만 사용합니다.

내가 왜 궁금 그래서 나는 일을하는 원래 htmlRequest.content 보여 주려고하지만, ( htmlRequest.text와 동일) htmlRequest.content.decode('windows-1250')에서 응용 프로그램 예외가 발생 : "LookupError: unknown encoding: windows-1250"은. 나는 또한 cp1250이라는 이름을 시도했지만 Win과 Linux 모두에서 다시 작업하면서 Android의 상황은 바뀌지 않았습니다.

따라서 나는이 코덱이 실제로 없어져서 이것을 해결하는 데 도움을 청할 것이라고 생각합니다. 해당 페이지의 인코딩을 변경할 수 없으며 올바른 코덱이 누락 된 경우 어떻게 제대로 디코딩 할 수 있습니까? 아니면 다른 방법이 있습니까?

편집 : Ryan이 설명했듯이 흰색 목록이 도움이되지만 Buildozer를 사용하여 APK를 작성하고 있습니다. 어떤 옵션이 있습니까 (buildozer.spec 파일 사용)?

답변

4

여분의 코덱은 공간 절약을 위해 python-for-android 빌드에서 제거됩니다 (블랙리스트에 있음). 필요한 코덱을 허용 목록에 추가하여이 문제를 해결할 수 있습니다. 파일 (아마도라고 whitelist.txt)을 만들거나 기존 화이트리스트에 다음 줄을 추가합니다 :

encodings/cp1250.pyo 

는 그 다음 --whitelist 인수 build.py에 화이트리스트 파일을 제공합니다.


buildozer를 들어, buildozer.spec의 android.p4a_whitelist 값으로 추가 할 수 있습니다.

+0

문제는 내가 buildozer로 구축하고 있다는 것입니다. (아마도 언급 했어야했는데, 처음부터 제거되었다는 것을 몰랐습니다.) 코덱 허용 목록을 지정하는 옵션이 있는지 살펴 보겠습니다. buildozer.spec에서,하지만 난 코드를 망칠 필요가 있다고 생각합니다. – Raven

+0

'android.p4a_whitelist'가 트릭을해야한다고 생각합니다.하지만 저는 buildozer를 사용하지 않습니다. 직접 p4a를 사용합니다. :) –

+0

위대한! 나는 그것이 주석으로 처음으로 그것을 놓쳤다. 처음에는 청소를하고 플랫폼을 다시 만들어야했지만 결함없이 작업했습니다. 답변을 추가하여 더 눈에 잘 띄게 할 수도 있지만 답변으로 표시하고 있습니다. 감사합니다. – Raven