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) 
    
相关推荐
京和动物医院·总院3 分钟前
2026年未央区宠物医院:如何挑选最适合您爱宠的健康守护者
大数据·人工智能·python
刘小八6 分钟前
RAG 文档切分不是越细越好:选择 Chunk Size 与 Overlap
人工智能·python·语言模型
互联网中的一颗神经元9 分钟前
小白python入门 - 23. Python 正则表达式的应用
python·正则表达式
雪碧透心凉_10 分钟前
while 循环与循环嵌套
开发语言·python
黄林晴14 分钟前
Nearby Connections 重大变更:不再自动开启 Wi-Fi / 蓝牙,适配指南
android
初学者,亦行者16 分钟前
利用pyecharts自动化绘制漏斗图保姆级教程
python·信息可视化·数据分析
这就是佬们吗25 分钟前
Python入门⑤-异常处理、文件操作与实战项目
开发语言·数据库·python·算法·pycharm
卷无止境34 分钟前
提升 Python 代码健壮性的方法大盘点
后端·python
恋猫de小郭34 分钟前
Flutter 全新真 3D 实现,用 flutter_scene 能开发一个「我的世界」
android·前端·flutter
asdzx6736 分钟前
Python PDF 拆分实战指南:单页拆分与按需页码范围拆分
开发语言·python·pdf