【发布时间】:2023-06-10 17:26:01
【问题描述】:
目标是使用 C++ 打印Uni Würzburg
我正在使用的代码:
#include <stdio.h>
using namespace std;
int main() {
char str0[21] = "Uni Würzburg";
printf("%s\n", str0);
char str1[21] = {85,110,105,32,87,'\xc3','\xbc',114,122,98,117,114,103, 0};
printf("%s\n", str1);
char str2[20] = "Uni W\x81rzburg";
printf("%s\n", str2);
char str3[20] = {85,110,105,32,87,'\x81',114,122,98,117,114,103, 0};
printf("%s\n", str3);
return 0;
}
我通过创建"ü" 字符串并打印字符得到了\xc3bc。
在两个不同的 Mac 上输出(同时使用 CLion 和在 bash 中使用 g++ test.c -o test):
Uni Würzburg
Uni Würzburg
Uni W�rzburg
Uni W�rzburg
Windows 上的输出 (CLion):
Uni W├╝rzburg
Uni W├╝rzburg
Uni Würzburg
Uni Würzburg
CLion 编辑器和项目编码在所有情况下都设置为 UTF-8,而 bash 的语言环境是:
LANG="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_CTYPE="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_ALL=
为什么会这样?最重要的是:什么是独立于平台的解决方案?
【问题讨论】:
-
这是您要寻找的答案:*.com/a/402918/5470596