近段时间在做战斗系统,昨天观察日志时发现中文显示乱码,而且奇怪的是有些中文日志是正常的,有些中文日志乱码

就是下面这种表现

Debug - Thu Oct 24 20:42:35 2019 : systems/ability/AbilityPlugin.cpp_104:AbilityPlugin::SetAbility(),战斗房间=1012,playerID=1012,roleID=1,abilityName=cur_hp,abilityValue=88
Debug - Thu Oct 24 20:42:35 2019 : systems/action/actionplugin.cpp_238:ActionPlugin::do_cast_spell() 缁撴潫, 鎴块棿ID=1012, 驴驴驴ID=1013, 驴驴ID=1, 驴驴驴驴ID=1012, 驴驴ID=1, 驴驴ID=1,
Debug - Thu Oct 24 20:42:35 2019 : game_engine.cpp_169:[CGameEngine]::SendToClient sockindex=1 SendToClient cmd=118  size=35
Debug - Thu Oct 24 20:42:35 2019 : systems/scene/battleroom.cpp_94:[CBattleRoom] OnRoomRun userid=1012 lTime=1571920955508 m_tickFlag=1571920956008 m_tickIndex=50.
Debug - Thu Oct 24 20:42:35 2019 : systems/ai/logic.cpp_45:鎴樻枟鎴块棿=1013, 鏂芥硶鑰匢D=1012, 瑙掕壊ID=1锛屾柦娉曠洰鏍嘔D=1013, 瑙掕壊ID=1, 鎶€鑳絀D=1, 褰撳墠鏃堕棿=1571920955509

可以看到AbilityPlugin.cpp的中文显示是正常的,但actionplugin.cpp的中文显示就是乱码

相信大家的第一反应就是这两个cpp文件的编码格式不同

我也是修改VScode中文件的编码格式,但是非常不幸的是编译执行后还是乱码

(后来才知道,我只是修改了VScode的解析方式,没修改cpp文件本身的编码方式,巨坑啊)

下面说正规的解决办法

1. 用vim 打开代码文件

2. 查看文件的编码方式,即命令 set fileencoding 应该不是utf-8的

3. 设置文件的编码方式,即命令 set fileencoding=utf-8

4. 保存文件

5. 重新编译后运行,日志文件打开时也以utf-8方式进行解析,这个时候就都能正常显示了

如下图:

Debug - Thu Oct 24 21:04:26 2019 : systems/ability/AbilityPlugin.cpp_104:AbilityPlugin::SetAbility(),战斗房间=1017,playerID=1016,roleID=1,abilityName=cur_hp,abilityValue=78
Debug - Thu Oct 24 21:04:26 2019 : systems/action/actionplugin.cpp_239:ActionPlugin::do_cast_spell() 结束, 战斗房间=1017, 施法者ID=1017, 角色ID=1, 施法目标ID=1016, 角色ID=1, 技能ID=1,
Debug - Thu Oct 24 21:04:26 2019 : game_engine.cpp_169:[CGameEngine]::SendToClient sockindex=2 SendToClient cmd=118  size=35
Debug - Thu Oct 24 21:04:26 2019 : systems/ai/logic.cpp_45:战斗房间=1017, 施法者ID=1016, 角色ID=1,施法目标ID=1017, 角色ID=1, 技能ID=0, 当前时间=1571922266013

注意:源码文件其他方式的编码也是可以的,但是查看日志的时候也需要对应的编码方式才行,为了统一,我们用utf-8

c++日志文件中文显示乱码的问题及解决办法相关推荐

  1. html文件浏览器乱码怎么解决方法,【学习笔记一】HTML文件在浏览器中文显示乱码的原因及解决办法...

    最近在学习前端html相关知识(备注:前端小白一枚),准备从移动端开发扩展到前端开发,希望做一个大前端,即前端全栈工程师.为什么要转向前端学习开发,在后面的文章中,我会详细阐述这个原因和相关心得. 在 ...

  2. MATLAB中文显示乱码的问题如何解决

    MATLAB中文显示乱码的问题如何解决 最近发现不同版本的 matlab 写的代码不能互用,比如在 matlab 2020 上写的代码,在matlab 2016 上显示,中文注释全部变成乱码,可能导致 ...

  3. 中文字符乱码的原因及解决办法

    中文字符乱码的原因及解决办法 java的内核是Unicode的,也就是说,在程序处理字符时是用Unicode来表示字符的,但是文件和流的保存方式是使用字节流的.在java的基本数据类型中,char是U ...

  4. 详解Intellij IDEA中.properties文件中文显示乱码问题的解决

    首先,你可能会见到如下提示: File encoding is disabled because .properties file (see Settings|Editor|File Encoding ...

  5. linux php oracle 乱码,Linux下Oraclesqlplus中文显示乱码的问题的解决

    在Windows下sqlplus完全正常,可是到Linux下,sqlplus中文显示就出问题了,总是显示ldquo;??rdquo;,这个问题又怎么解决呢?经 在Windows下sqlplus完全正常 ...

  6. sscom 中文显示 乱码_SSM框架:解决后台传数据到前台中文乱码问题,使用@ResponseBody返回json 中文乱码 Web程序 - 贪吃蛇学院-专业IT技术平台...

    场景: 在实际运用场景中,当前台发起请求后,我们需要从后台返回数据给前台,这时,如果返回的数据中包含中文,则经常会出现在后台查询出来都是好好,但是传输回去就莫名的乱码了,而且,我们明明已经在 web. ...

  7. 台式计算机标题出现乱码,电脑系统显示乱码的两种解决办法

    有网友的电脑出了问题,系统的菜单,标题等处变成了乱码,到百度知道求助,提供了一张如下的乱码图片,希望得到解决.出现乱码的有几种情况,一是系统乱码,主要是桌面,菜单,标题,对话框等处出现乱码.二是文档中 ...

  8. mysql导入中文数据_MYSQL导入中文数据乱码的四种解决办法

    方式一:通过增添参数 –default-character-set = utf8 解决乱码问题 方式一:通过增添参数 –default-character-set = utf8 解决乱码问题 mysq ...

  9. php从数据库读取中文显示问号??的解决办法

    出错原因: 1.数据库编码格式不对 2.PHP编码格式不对 3.浏览器编码格式不对 上面三者编码格式不统一,就会出现问题 数据库读取的时候在mysqli_connect()之后要设置连接字符编码mys ...

最新文章

  1. 为什么很多程序员面试造火箭,入职拧螺丝?
  2. java里css查找快捷键_CSS入门2—元素快捷键
  3. 常用的正则表达式(方便自己看)
  4. 【BZOJ】1076 [SCOI2008]奖励关 期望DP+状压DP
  5. python中缩进_python编程中的缩进是什么意思
  6. 仪征市第二中学计算机老师,静心倾听花自开 ——仪征市第二中学徐丞老师
  7. Codeforces Round #114 (Div. 1) A. Wizards and Trolleybuses 物理题
  8. 指定init启动Linux内核,初看linux内核启动过程
  9. linux日常检查,Linux日常检查的shell
  10. 如何给域里的每台电脑分配一个***远程访问IP地址
  11. 数据资料网站_更新......
  12. hrbust 1865人类希望——kokoⅡ【思维】
  13. 网格边缘试探--服务网格的探索与实践
  14. 用例执行一半总是报错“An unknown server-side error occurred ...Original error: Error: socket hang up”
  15. [Western CTF 2018]shrine
  16. 《Android开发卷——设置圆形头像,Android截取圆形图片》
  17. java 多重继承的困境
  18. 关于Unity绑定手机
  19. 计算机大专物联网专业学什么好,大专计算机学哪个专业比较好 什么专业好就业...
  20. 计算机软件转让的知识产权归属,买卖合同中知识产权的归属

热门文章

  1. 网管,待遇为何如此差劲?
  2. 关于Linux系统的运行级别
  3. c语言骑士游历优化算法,骑士游历、骑士巡游(C语言)课程设计.doc
  4. linux 卸载自带java_卸载linux系统自带JDK,安装自己的jdk
  5. 正方形个数(二维点哈希)
  6. 区间第K大(划分树)
  7. 换种思路去理解设计模式
  8. 数据库的同步和复制----sql语句方法
  9. CBitmapButton位图按钮简明教程
  10. selenium的使用教程3