在 C++ 中,我有一些字符串,例如
string str = "a\0b\0c";
我需要将此字符串传递给 C# 而不会在“\0”之后丢失数据,并且从 c# 传递到 C++ 也不会丢失数据。
你能帮助我吗?
在 C++ 中,我有一些字符串,例如
string str = "a\0b\0c";
我需要将此字符串传递给 C# 而不会在“\0”之后丢失数据,并且从 c# 传递到 C++ 也不会丢失数据。
你能帮助我吗?
好的,我找到了我的问题的答案。也许,这不是很好的解决方案,但它解决了我的问题。C++:
string EncodeConfigString(string OptionsString)
{
string tempOptions = " ";
if (OptionsString.size() != 0)
{
vector<int> arrayOfIntCodes;
for (int i = 0; i < OptionsString.size(); i++)
{
int codeOfChar = OptionsString[i];
tempOptions += std::to_string(codeOfChar) + "&";
}
}
return tempOptions;
}
C#:
private string DecodeConfig(StringBuilder OptionsBuilder)
{
string result = String.Empty;
string Options = OptionsBuilder.ToString();
if (!string.IsNullOrEmpty(Options) && Options.Contains(Consts.AMPERSAND))
{
string[] entries = Options.Split(Consts.AMPERSAND);
StringBuilder chars = new StringBuilder(Consts.OUTPUT_MAX_SIZE);
for (int i = 0; i < entries.Length; i++)
{
int resultParse;
if (int.TryParse(entries[i], out resultParse))
{
chars.Append((char)resultParse);
}
}
result = chars.ToString();
}
return result;
}