VS 2019 C++ 编译器无法编译某些字符串

VS 2019 C++ compiler cant compile some strings

我有一些奇怪和愚蠢的情况。我有这部分代码:

FString x = TEXT("ааааааа");//Russian language (line 54)
Caesar* ciph = new Caesar;// (line 55)

当我尝试编译我的项目时,出现这样的错误:

../Widget_Manager.cpp(54): error C2001: newline in constant

../Widget_Manager.cpp(55): error C2146: syntax error: missing ';' before identifier 'Caesar'

最有趣的事情(至少对我来说),如果我改变 54 行:

FString x = TEXT("абвгдеё");//Russian language (line 54)

FString x = TEXT("abcdefg");//English language (line 54)

或者如果我从俄语“аааааа”中删除 1 'a'。已编译。

我还尝试以不同的方式敲击键盘,我发现了其他未编译的俄语字母组合,例如:риорыванкешшур

在没有 TEXT() 宏的情况下工作类似。

据我了解俄语包含,以 UTF-16 开头。 FStrigs 是 UTF-16。我唯一可以将编译器的行为与之相关联的是(据我所知)默认情况下它在 UTF-8 中工作(无论那意味着什么)。

如果有人理解并能向我解释发生了什么,我会很高兴。

我在 Visual Studio 2019 年工作,UE 4.26.1。

////////////////////////////////////////// ///

后记:

问题已解决,但问题是:“为什么一些俄语字母组合被编译编码而其他组合没有被编译(在西里尔 windows 1251 上)?”仍然存在。

如果你需要 UTF-16 字符串横向,你可以使用这样的语句:

 char16_t str[] = u"Виян Лиже Первомай";

但是,当然,这取决于您使用的 FString class 的实现。

为了解决编译问题,我 File -> Save as -> near save button arrow -> Save with encodig -> Choose UTF-8