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

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.lryc.cn/news/590118.html

相关文章:

  • Kafka 与 RocketMQ 消息确认机制对比分析
  • 深度解析:Python实战京东资产拍卖平台爬虫,从ID抓取到详情数据落地
  • 2025年C++后端开发高频面试题深度解析:线程安全LRU缓存设计与实现
  • 短剧系统开发:塑造数字娱乐新未来
  • 面试150 二叉树的层序遍历
  • UE5 相机后处理材质与动态参数修改
  • 猫眼娱乐IOS开发一面手撕算法
  • 工业相机GigE数据接口的优势及应用
  • [特殊字符] 第1篇:什么是SQL?数据库是啥?我能吃吗?
  • SQL,在join中,on和where的区别
  • 锁存型霍尔 IC:定义、应用与优势全解析
  • Git问题排查与故障解决详解
  • 前端性能与可靠性工程:前端韧性工程 - 优雅降级与离线支持
  • 《设计模式之禅》笔记摘录 - 7.中介者模式
  • 如何解决pip安装报错ModuleNotFoundError: No module named ‘tkinter’问题
  • 网络编程/Java面试/TCPUDP区别
  • 【代码】Matlab鸟瞰图函数
  • AsyncRelayCommand示例学习
  • 测试开发工作日常用的提示词分享
  • XPath注入攻击详解:原理、危害与防御
  • 智能工厂生产设备状态检测算法
  • 基于多源时序特征卷积网络(MSTFCN)的光伏功率预测模型
  • 基于springboot+vue的酒店管理系统设计与实现
  • 施易德门店管理系统应用案例分析:零售女装品牌伊芙丽的全球化布局
  • PandaWiki与GitBook深度对比:AI时代的知识管理工具,选谁好?
  • 从电子管到CPU
  • Swarm Network 选择 Walrus 实现可验证 AI
  • 浏览器自动化方案
  • 小架构step系列16:代码文档
  • 共生型企业:驾驭AI自动化(事+AI)与人类增强(人+AI)的双重前沿