C++ 为什么我的utf-8字符不显示?

C++ 为什么我的utf-8字符不显示?,c++,linux,c++11,utf-8,C++,Linux,C++11,Utf 8,我遇到了一个问题,在linux上,像łąćźżó这样的字符不能像TM `~ř那样正确显示,但在windows上,它们使用相同的代码 int main() { printf("łąć"); return 0; } 当在windows上编译而不是在linux上编译时,这会正确显示,但我甚至添加了utf-8选项,并将所有文件保存为utf-8编码: 仅Makefile标志+链接: COMPILE_FLAGS = -std=c++0x -m32 -fPIC -c -finput-cha

我遇到了一个问题,在linux上,像łąćźżó这样的字符不能像TM `~ř那样正确显示,但在windows上,它们使用相同的代码

int main()
{ 
    printf("łąć");
    return 0;
}
当在windows上编译而不是在linux上编译时,这会正确显示,但我甚至添加了utf-8选项,并将所有文件保存为utf-8编码:

仅Makefile标志+链接:

COMPILE_FLAGS = -std=c++0x -m32 -fPIC -c -finput-charset=UTF-8 -finput-charset=UTF-8 -fwide-exec-charset=UTF-8 -I ./ -w -D LINUX -D PROJECT_NAME=\"SampCaptcha\"

SampCaptcha = -D SampCaptcha $(COMPILE_FLAGS)

$(GPP) -m32 -lrt -ldl -fshort-wchar -shared -o $(SampCaptcha_OUTFILE) *.o
为什么这不起作用?用户无法通过这种方式阅读文本

好的,人们要求1:1的输入/输出,给你:

linux上的输出:

以下是文本:

Message("Witaj nowy graczu!");
Message("Wygląda na to iż Twoje ip nie jest nam znane");
Message("Za chwilkę zostaniesz przekierowany na serwer i będzies spokojnie mógł grać z innymi");
Message("Zanim to jednak zrobimy, pierwszę sprawdzimy czy nie jesteś komputerem który chce zepsuć serwer");
Message("Proszę się zrespawnować aby kontynuować");
正如我所说,当编译成DLL时,它在Windows上工作,当直接将带有unicode字符的命令输入主机程序时,它们会显示在聊天室中。它是一个封闭源代码的应用程序,我没有访问权限,但我们确信它是我的GCC做了一些错误的事情,许多其他人似乎在显示特殊字符方面没有问题

区域设置的输出:

~# locale
LANG=en_GB.UTF-8
LANGUAGE=
LC_CTYPE="en_GB.UTF-8"
LC_NUMERIC="en_GB.UTF-8"
LC_TIME="en_GB.UTF-8"
LC_COLLATE="en_GB.UTF-8"
LC_MONETARY="en_GB.UTF-8"
LC_MESSAGES="en_GB.UTF-8"
LC_PAPER="en_GB.UTF-8"
LC_NAME="en_GB.UTF-8"
LC_ADDRESS="en_GB.UTF-8"
LC_TELEPHONE="en_GB.UTF-8"
LC_MEASUREMENT="en_GB.UTF-8"
LC_IDENTIFICATION="en_GB.UTF-8"
LC_ALL=

没有太多使用UTF-8的经验,但发现似乎与您的问题相同,希望能有所帮助。您在linux上的输出是什么?hm已经投了反对票,似乎从windows迁移到linux不会是一个选项-。-“也许您的消息函数做错了什么?”?我无法复制它,在我的ubuntu机器上用printf正确打印:嗯,我会咨询创建软件的人。在这种情况下,我以为是我的G++/GCC。