smart-test-ti / SoloX

💯SoloX - Real-time collection tool for Android/iOS performance data.(Android性能测试android performance\iOS性能测试ios performance\移动端性能测试mobile performance\APP性能测试app performance\app性能测试工具)
https://smart-test-ti.github.io/solox
MIT License
993 stars 177 forks source link

我这边有台设备,获取型号是中文,造成报错 #229

Closed objectBoolean closed 12 months ago

objectBoolean commented 1 year ago

[E 231012 17:49:57 apis:89] 'gbk' codec can't decode byte 0xaa in position 2: illegal multibyte sequence Traceback (most recent call last): File "E:\pythonProject\adl-solox\venv\Lib\site-packages\solox\view\apis.py", line 63, in deviceids devices = d.getDevices() ^^^^^^^^^^^^^^ File "E:\pythonProject\adl-solox\venv\Lib\site-packages\solox\public\common.py", line 70, in getDevices Devices = [f'{id}({self.getDevicesName(id)})' for id in DeviceIds] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\pythonProject\adl-solox\venv\Lib\site-packages\solox\public\common.py", line 70, in Devices = [f'{id}({self.getDevicesName(id)})' for id in DeviceIds] ^^^^^^^^^^^^^^^^^^^^^^^ File "E:\pythonProject\adl-solox\venv\Lib\site-packages\solox\public\common.py", line 64, in getDevicesName devices_name = os.popen(f'{self.adb} -s {deviceId} shell getprop ro.product.model').readlines() ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ UnicodeDecodeError: 'gbk' codec can't decode byte 0xaa in position 2: illegal multibyte sequence

建议改成:devices_name = os.popen(f'{self.adb} -s {deviceId} shell getprop ro.product.model').buffer.readlines()[0].decode("utf-8")