You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell输出adb日志文件编码异常,如何解决?

解决PowerShell执行adb logcat输出日志内容异常的问题

问题原因

adb在Windows环境下默认输出编码是UTF-16LE,而PowerShell的重定向操作(>)虽然默认用UTF-8,但在处理外部命令输出时会额外做编码转换,导致日志内容乱码或异常。Git Bash/MobaXterm这类终端直接处理adb的原生输出,没有中间转换,所以能得到正确结果。

可行解决方案

  • 方案1:用Out-File指定UTF-16LE编码输出
    替换原重定向命令,直接指定输出编码匹配adb的原生编码:

    adb logcat WeatherActivity:D *:S | Out-File -FilePath weather.log -Encoding Unicode
    

    这里Unicode对应Windows的UTF-16LE编码,完美匹配adb输出。

  • 方案2:临时修改PowerShell的控制台输出编码
    先将PowerShell的控制台输出编码设为adb的UTF-16,再执行日志导出:

    [Console]::OutputEncoding = [System.Text.Encoding]::Unicode
    adb logcat WeatherActivity:D *:S > weather.log
    

    执行完后如果需要恢复默认编码,可执行[Console]::OutputEncoding = [System.Text.Encoding]::UTF8。

  • 方案3:通过cmd.exe执行绕开PowerShell的编码转换
    直接调用cmd来执行日志导出命令,利用cmd的原生重定向逻辑:

    cmd /c "adb logcat WeatherActivity:D *:S > weather.log"
    

内容的提问来源于stack exchange,提问作者Yatung Yü

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 07:55:00