• 解决 CLion + MSVC 下的字符编码问题


    第一次这么用,上来字符编码就炸了,不出意外 log 中会出现如下内容

     
    code
    1
    warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失

    然后就是诡异的编译失败语法错误,比如换行符、分号等等

    原因是 CLion 默认使用 UTF-8 编码,MSVC 继承了 MS 家族的一贯传统,除非明确指定否则要么 UTF-8 with BOM 要么当前代码页。

    解决办法也简单,加上命令行开关就行了: utf-8 或者 source-charset:utf-8 /execution-charset:utf-8 参见MSVC文档>>

    默认创建的项目是 CMake 的,在 CMakeList.txt 中加入如下内容即可

     
    cmake
    1
    2
    add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
    add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")

    括号中表达式语法具体参见 cmake-generator-expressions(7)


    #add_compile_options("$<$<C_COMPILER_ID:MSVC>:/utf-8>")
    #add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>")
    必须位于 add_executable(……) 之前


    或者

    -D CMAKE_CXX_FLAGS="/utf-8"


  • 相关阅读:
    大二暑期周总结(四)
    大二暑期周总结(三)
    寒假十七
    寒假十六
    寒假十五
    寒假十四
    寒假十三
    寒假十二
    寒假十一
    寒假十
  • 原文地址:https://www.cnblogs.com/Chary/p/13608011.html
Copyright © 2020-2023  润新知