Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在常量字符串中使用不同的编码_C++_Linux_Windows_Encoding - Fatal编程技术网

C++ 在常量字符串中使用不同的编码

C++ 在常量字符串中使用不同的编码,c++,linux,windows,encoding,C++,Linux,Windows,Encoding,我有一个在linux和windows上运行的程序。此程序从linux/windows接收数据。数据是西里尔字母字符串。 linux上的程序从windows接收数据,并将其与具有西里尔常量固定大小字符串的常量向量进行比较。或者Windows上的程序从linux接收数据,并执行相同的操作 在linux中,固定大小的字符串每个符号有2个字节,在windows中,每个符号有1个字节。 问题是如何正确编译这个Cyric常数字符串到Windows和Linux的相同编码?在UC++中使用Unicode是不容易

我有一个在linux和windows上运行的程序。此程序从linux/windows接收数据。数据是西里尔字母字符串。 linux上的程序从windows接收数据,并将其与具有西里尔常量固定大小字符串的常量向量进行比较。或者Windows上的程序从linux接收数据,并执行相同的操作

在linux中,固定大小的字符串每个符号有2个字节,在windows中,每个符号有1个字节。
问题是如何正确编译这个Cyric常数字符串到Windows和Linux的相同编码?

在UC++中使用Unicode是不容易的,没有外部库。如果您所做的只是比较字符串,那么为什么不将所有内容存储在
char32\U t
字符串中,即
std::u32string
U“string”
。这样可以避免每个符号的字节数不匹配。@DeiDei这是个好主意,但存在一个将与我的程序一起工作的程序,它是第三方软件。该软件可以将其区域设置发送到我的程序,而不再发送。我知道这个软件总是使用WCHAR__T(uint16___T),linux使用UTF-8,windows使用ISO-8859-5。我不知道如何解决它。在没有外部库的情况下,在C++中使用Unicode并不容易。如果您所做的只是比较字符串,那么为什么不将所有内容存储在
char32\U t
字符串中,即
std::u32string
U“string”
。这样可以避免每个符号的字节数不匹配。@DeiDei这是个好主意,但存在一个将与我的程序一起工作的程序,它是第三方软件。该软件可以将其区域设置发送到我的程序,而不再发送。我知道这个软件总是使用WCHAR__T(uint16___T),linux使用UTF-8,windows使用ISO-8859-5。我不知道将来怎么解决它。