gpt4 book ai didi

unicode - 英特尔C编译器和L”前缀

转载 作者:行者123 更新时间:2023-12-04 15:57:07 26 4
gpt4 key购买 nike

如何在Intel C编译器中定义俄语字符串?
在MSVS 2008中,我这样做:

_wsetlocale(LC_ALL, L"Russian");
wprintf(L"текст");


而且有效。
在ICC中不起作用。

最佳答案

为了诊断问题,我将检查编译过程中这些字符被编码为什么值。带有一些类似的代码:

wchar_t *x = L"текст";
for(int i=0; x[i] != L'\0'; i++)
{
printf("%02x\n", x[i]);
}


如果 "%02x",则可能需要将该 "%04x"更改为 sizeof(wchar_t) == 4

如果值不同,则可能是编译时问题,其中编译器使用不同的编码来解释源文件。

我会避免在源文件中使用> U + 007F的代码点,将字符串外部化为资源文件并使用适当的编码加载它们。如果愿意,可以尝试使用Unicode转义序列(如 L"\u0442\u0435\u043a\u0441\u0442")。

关于unicode - 英特尔C编译器和L”前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2261059/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com