Skip to content

这个库的编码问题 #189

@caomengxuan666

Description

@caomengxuan666

如果是win上msvc与qt的环境,msvc和qt会产生编码冲突,也就是msvc采用的编码不是utf8,如果在代码里面,检测到msvc与qt的时候可以加一个utf8的宏。

因为这种编码情况下会让很多字符无法以正常形式读取,比如注释会引发大量的报错。这种情况下,本机是gbk的情况下如果用utf8会无法加载出注释,也就是注释会乱码。如果用别的编码,那么vs工具链无法正常编译。
最关键的是,采用msvc的时候,我们的utf8不含Bom,他会以本地形式加载,会出现编译报错,解决之后呢,控制台调试输出的在某些情况仍有可能出现乱码问题。

这里给出大家一个解决方案,在qt代码里面使用宏来避免我们的编码被改成非utf8形式进行加载。

单文件形式,在每个文件头部添加
~~
#if _MSC_VER >= 1600
#pragma execution_character_set("utf-8")
#endif
~~

或者在可执行文件主函数文件定义
~~
#include

extern QTextCodec *codec;
#define TU codec->toUnicode

QTextCodec *codec = QTextCodec::codecForName("utf-8");

~~

这种情况下,我们可以实现三种情况同时满足

  • 在qt的控件里面能正常显示文字

  • 在你的代码编辑器里面能正常显示中文注释

  • 在你的控制台里面可以正确调试打印正确编码字符。

这样的话,大家在自己的qt应用程序里面的时候就能正常嵌入这个分析器了,不需要用宽字符串之类的东西了

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions