adb logcat 写文件乱码的解决方案

如果在 Windows 下直接 adb logcat 写文件是会存在乱码的问题,这边建议使用 Python 脚本解决这个问题

python 复制代码
import subprocess
import sys
from datetime import datetime

def run_adb_logcat(output_file=None):
    try:
        # 如果没有指定输出文件,使用当前时间创建文件名
        if output_file is None:
            output_file = f"logcat_{datetime.now().strftime('%Y%m%d_%H%M%S')}.txt"
        
        # 执行 adb logcat 命令
        process = subprocess.Popen(
            ['adb', 'logcat'],
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            universal_newlines=True,
            encoding='utf-8',
            errors='replace'  # 处理无法解码的字符
        )
        
        # 打开文件准备写入
        with open(output_file, 'w', encoding='utf-8') as f:
            while True:
                try:
                    # 读取一行输出
                    line = process.stdout.readline()
                    if not line:
                        break
                    
                    # 写入文件
                    f.write(line)
                    # 立即刷新缓冲区
                    f.flush()
                    
                except KeyboardInterrupt:
                    print("\n停止记录日志")
                    break
                except Exception as e:
                    print(f"发生错误: {str(e)}")
                    break
        
        # 终止进程
        process.terminate()
        
    except Exception as e:
        print(f"执行出错: {str(e)}")
        sys.exit(1)

if __name__ == "__main__":
    # 可以指定输出文件名,如果不指定则使用默认的时间戳文件名
    output_file = sys.argv[1] if len(sys.argv) > 1 else None
    run_adb_logcat(output_file) 
    
相关推荐
空影星10 小时前
Pot Translator,跨平台划词翻译与OCR工具
python·ocr·电脑
不枯石10 小时前
Python实现点云法向量各种方向设定
python·计算机视觉·numpy
JiayinX10 小时前
django连接minio实现文件上传下载(提供接口示例)
后端·python·django
诸神黄昏EX10 小时前
Android SystemServer 系列专题【篇五:UserController用户状态控制】
android
2501_9160074710 小时前
Transporter App 使用全流程详解:iOS 应用 ipa 上传工具、 uni-app 应用发布指南
android·ios·小程序·https·uni-app·iphone·webview
Python图像识别10 小时前
63_基于深度学习的草莓病害检测识别系统(yolo11、yolov8、yolov5+UI界面+Python项目源码+模型+标注好的数据集)
python·深度学习·yolo
十六点五11 小时前
Java NIO的底层原理
java·开发语言·python
跟橙姐学代码11 小时前
不要再用 print() 了!Python logging 库才是调试的终极武器
前端·python
叽哥11 小时前
Kotlin学习第 5 课:Kotlin 面向对象编程:类、对象与继承
android·java·kotlin
叽哥11 小时前
Kotlin学习第 6 课:Kotlin 集合框架:操作数据的核心工具
android·java·kotlin