比较语言特殊字符

时间:2018-11-29 00:27:42

标签: c++

在其他语言中,没有英语通常会带有特殊字符,例如西班牙语中的ñ。

我最近发现自己想知道如何比较两个char,例如temporal =='ñ'?或临时== char(-94)我尝试了两者,但没人能正常工作

1 个答案:

答案 0 :(得分:0)

我认为您最有可能的情况是选择字符集,并且您有一个控制台应用程序。如果不是,那么您唯一需要注意的就是第一句话,以及代码中字符串前面的L。而wchar_t是您的字符类型。

确保将General下的项目属性设置为“使用Unicode字符集”。而且我也忘记了控制台应用程序的一些小技巧。出于某些奇怪的原因,您必须将控制台模式设置为unicode(可能是向后兼容)。对于UI应用程序,这不是问题。

#include <fcntl.h>
#include <io.h>

...

          _setmode(_fileno(stdout), _O_U16TEXT); //use utf-16, like every other Windows system defaults to
          _setmode(_fileno(stdin), _O_U16TEXT);
          wchar_t n = 0x00f1;  //see https://www.fileformat.info/info/charset/UTF-16/list.htm
          _tprintf(L"%c\n", n); //(or use wprintf explicitly)
          _tprintf(L"ññññññññññ\n");
          wcout << L"ñ\n";

我希望这至少对您有所帮助。