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
我有一些奇怪和愚蠢的情况。我有这部分代码:
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