当前位置: 首页 > web >正文

Unity Android Logcat插件 输出日志中文乱码解决

  • 背景

        之前安卓真机调试看日志,一直用的是Android Studio自带的adb命令进行看日志,不太方便,改用Unity自带的安卓日志插件时,存在中文日志乱码问题。

  • 插件安装

        基于Unity6000.1.11版本:Window -> Package Management -> Package Manager,即可打开包管理工具,选择Unity Registry分类,找到Android Logcat插件,导入即可。

  • 插件使用

        打开插件:Window -> Analysis -> Android Logcat,手机开启调试模式后,使用数据线连接电脑,在该插件面板默认会自动选择手机并输出日志(需手机先运行程序,每次运行后,每次选择)。可在顶部选择要调试程序的包名,输出的日志更整洁。

  • 乱码解决

        找到插件源码:Editor/AndroidLogcatMessageProvider.cs

        public override void Start(){var arguments = LogcatArguments();AndroidLogcatInternalLog.Log("\n\nStarting logcat\n\n");AndroidLogcatInternalLog.Log("{0} {1}", m_ADB.GetADBPath(), arguments);m_LogcatProcess = new Process();m_LogcatProcess.StartInfo.FileName = m_ADB.GetADBPath();m_LogcatProcess.StartInfo.Arguments = arguments;m_LogcatProcess.StartInfo.RedirectStandardError = true;m_LogcatProcess.StartInfo.RedirectStandardOutput = true;m_LogcatProcess.StartInfo.UseShellExecute = false;m_LogcatProcess.StartInfo.CreateNoWindow = true;//中文乱码修复,增加两行代码m_LogcatProcess.StartInfo.StandardOutputEncoding = System.Text.Encoding.UTF8;m_LogcatProcess.StartInfo.StandardErrorEncoding = System.Text.Encoding.UTF8;m_LogcatProcess.OutputDataReceived += OutputDataReceived;m_LogcatProcess.ErrorDataReceived += OutputDataReceived;m_LogcatProcess.Start();m_LogcatProcess.BeginOutputReadLine();m_LogcatProcess.BeginErrorReadLine();}

        找到插件源码:Editor/AndroidTools/Shell.cscishi 

        internal static ShellReturnInfo RunProcess(ShellStartInfo startInfo){Process process = new Process();process.StartInfo.FileName = startInfo.FileName;process.StartInfo.Arguments = startInfo.Arguments;process.StartInfo.WorkingDirectory = startInfo.WorkingDirectory;process.StartInfo.UseShellExecute = false;process.StartInfo.RedirectStandardOutput = true;process.StartInfo.RedirectStandardError = true;process.StartInfo.CreateNoWindow = true;//中文乱码修复,增加两行代码process.StartInfo.StandardOutputEncoding = Encoding.UTF8;process.StartInfo.StandardErrorEncoding = Encoding.UTF8;...}

此时,日志就能够正常显示中了。 

http://www.xdnf.cn/news/15603.html

相关文章:

  • 小白成长之路-Elasticsearch 7.0 配置
  • BNN 技术详解:当神经网络只剩下 +1 和 -1
  • 基于redis的分布式锁 lua脚本解决原子性
  • 免杀学习篇(1)—— 工具使用
  • 网页源码保护助手 海洋网页在线加密:HTML 源码防复制篡改,密文安全如铜墙铁壁
  • 基于华为欧拉系统安装FileGator文件管理器
  • 【Android】日志的使用
  • 深度学习中的激活函数:从原理到 PyTorch 实战
  • python 基于 httpx 的流式请求
  • 场景设计题+智力题
  • [Science]论文 视黄素与细胞修复
  • C++回顾 Day7
  • PyCharm 高效入门指南:从安装到效率倍增
  • [面试] 手写题-对象数组根据某个字段进行分组
  • 学习嵌入式的第二十八天-数据结构-(2025.7.15)进程和线程
  • P3842 [TJOI2007] 线段
  • Web攻防-PHP反序列化字符逃逸增多减少成员变量属性解析不敏感Wakeup绕过
  • 高等数学强化——导学
  • Android中Launcher简介
  • deepseekAI对接大模型的网页PHP源码带管理后台(可实现上传分析文件)
  • ASP .NET Core 8结合JWT轻松实现身份验证和授权
  • SpringBoot 实现 Redis读写分离
  • “C21988-谷物烘干机(2D+3D+说明书+运动仿真)8张cad+设计说明书
  • pytorch学习笔记(四)-- TorchVision 物体检测微调教程
  • 常用高频指令总结
  • iOS App 上架工具选型与跨平台开发 iOS 上架流程优化实录
  • 视频HDR技术全解析:从原理到应用的深度探索
  • 【时时三省】(C语言基础)通过指针引用多维数组
  • 视频编码中熵编码之基于上下文的变长编码(Huffman霍夫曼编码和指数哥伦布)
  • 网络编程-epoll模型/udp通信