我遇到一个问题,在linux上我的字符如łąćźżó没有正确显示(如(TM)`~řÉ),但在Windows上,它们是相同的代码。
int main()
{
printf("łąć");
return 0;
}
在Windows上编译时显示正确但在linux上没有,但我甚至添加了utf-8选项并将所有文件保存为UTF-8编码:(
仅限Makefile标记+ link:
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=