zoukankan      html  css  js  c++  java
  • visual studio 在windows远程调试 linux 程序 cout 输出乱码

    转载:https://www.cnblogs.com/findumars/p/6627255.html

    反正是解决了。

    以gcc为例,它有三个命令选项:
    -finput-charset=gb18030
    -fexec-charset=utf-8
    -fwide-exec-charset=utf32
    顾名思议,input-charset指的是源文件中字符串常量(字面量)的编码,exec-charset是运行时字符编码,也就是可执行文件中的字符串编码,wide-exec-charset是运行时宽字符编码。
    还有一个编码,就是本地字符串编码,这个需要在程序启动时通过setlocale函数指定。
    显然,从gb18030到utf-8,需要一个转码过程,这个就是源文件编码---->运行时编码;从gb18030到utf32的转换也是源文件编码---->运行时编码。这是编译时完成的。
    从运行时编码到本地字符串编码的转换,发生在运行时,程序需要展示信息时。本地编码对界面和控制台是否出现乱码有影响。
    VC++从2015 update 3 开始,也有相应的命令行选项:
    -execution-charset:gb18030
    -source-charset:gb2312
    c++ builder里的clang或bcc虽然没有相应的命令行选项,但是一定有上面提到的转换过程,只不过编码是默认的。

  • 相关阅读:
    raspberry pi (树莓PI)使用socket向PC发送视频流
    树莓PI交叉编译BOOST库(asio网络例子)
    远程调试树莓PI
    opencv车速检测
    屏蔽同步(JAVA)
    linux常用命令记录
    虚拟机中Ubuntu设置固定IP方法
    java笔记01-反射
    java笔记00-目录
    mysql由于外键关联无法删除数据
  • 原文地址:https://www.cnblogs.com/nanfei/p/11791840.html
Copyright © 2011-2022 走看看