The objective is to print Uni Würzburg
using C++
The code I am using:
#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;
}
I got the \xc3bc
from creating a "ü"
string and printing the characters.
Output on two different Macs (using both CLion and in bash using g++ test.c -o test
):
Uni Würzburg
Uni Würzburg
Uni W�rzburg
Uni W�rzburg
Output on Windows (CLion):
Uni W├╝rzburg
Uni W├╝rzburg
Uni Würzburg
Uni Würzburg
CLion editor and project encodings are in all cases set to UTF-8 and the locale of bash is:
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=
Why is this happening? Most importantly: What would be a platform independent solution?