Kivy(python-for-android)缺少编解码器

我刚刚遇到了缺少编解码器的问题,已经讨论过here,但解决方案提供了那里修复了其他问题,阻止了原来的显示.但是我现在遇到了同样的事情,这次没有解决方法.

我有windows-1250编码的HTML页面.我正在使用htmlRequest = requests.get(url)来获取它,我必须明确指定编码为htmlRequest.encoding =’windows-1250′.然后阅读htmlRequest.text应该正确解码内容,它确实可以在Win和Linux上工作,但在Android上我只获得空格而不是特殊字符.

我想知道为什么,所以我试图显示原始的htmlRequest.content,但是在htmlRequest.content.decode(‘windows-1250’)(与htmlRequest.text相同)上,app引发了一个异常:“LookupError:unknown编码:windows-1250“.我也尝试了名称cp1250,但同时又为Win和Linux工作,它没有改变Android的情况.

因此,我认为这些编解码器确实缺失,并在解决此问题时寻求帮助.我无法真正改变该页面的编码,如果我错过了正确的编解码器,我该如何正确解码呢?或者还有其他方法吗?

编辑:正如Ryan所解释的那样,白名单应该会有所帮助,但我正在使用Buildozer构建apk.它是否有任何选项(使用buildozer.spec文件)?

解决方法:

额外的编解码器从python-for-android构建中被剥离(列入黑名单)以节省空间.您可以通过将所需的编解码器列入白名单来解决此问题.创建一个文件(可能称为whitelist.txt)或将以下行添加到现有白名单中:

encodings/cp1250.pyo

然后使用–whitelist参数将白名单文件提供给build.py.

对于buildozer,您可以将其添加到buildozer.spec中的android.p4a_whitelist值.

上一篇:Python3.6问题


下一篇:logstash之codec插件