【发布时间】:2019-07-17 15:50:22
【问题描述】:
我试图说明 QT4 和 QT5 的使用情况。该系统使用这两个版本,但它们位于共享公共文件的单独产品中。
我找到了一个可行的解决方案,但它每次都必须进行版本检查,我想找到一种方法来实现“一个编码适合两者”的场景。
我目前的解决方案是这样的,以微型符号 (µ) 为例。
QT 4 编码只需要字节的半字节,在这种情况下是 (\xb5)
Qt 5 需要整个字节 (\xc2\xb5)。
我也尝试过使用 C++ 代码 (\u00B5),但产生了 Î 1/4
c++
#include <QtCore/QtGlobal>
#if QT_VERSION >= 0x050000
print out a QString with the code \xc2\xb5
#else
print out a QString with the code \xb5
#endif
有没有更好的方法来避免版本检查?我想消除大约 50 项此类检查。
【问题讨论】:
-
\xb5是一个字节,\xc2\xb5是 2 个字节。 U+C2B5 不是有效的 Unicode 字符:fileformat.info/info/unicode/char/c2b5/index.htm -
好的,但是这个解决方案有效,我只是想找到一个更好的方法
-
@RichardCritten 该站点是错误的,它是一个有效的字符(它甚至显示为这样!)。见what unicode-table.com thinks of it。但无论如何,你检查错了:
C2 B5是一个 UTF-8 字符串,对应于 U+00B5 代码点。