3

我有以下代码将 String 转换为 CFString 和 backwarts:

string path = @"C:\Users\ayi\Desktop\Failed\AngryBirds.ipa";

IntPtr p_path = __CFStringMakeConstantString(path);

CoreFoundation.CFString cfstring = new CoreFoundation.CFString(p_path);

string result = cfstring.ToString();

问题是path != result其中path包含一些中文字符,例如 @"C:\Users\ayi\Desktop\中文\AngryBirds.ipa";

如何在 C# 中将包含中文的字符串转换为 cfstring?

4

1 回答 1

0

您可以使用以下函数将类似 c 的字符串转换为 CFString CFStringCreateWithCString

CFStringCreateWithCString(kCFAllocatorDefault, myCString, kCFStringEncodingUTF8);

然后你需要弄清楚如何将 C# 字符串转换为类 c 字符串。不幸的是,我不是 C# 开发人员,所以这里有一个看起来不错的链接:

C++ .NET 将 System::String 转换为 std::string

注意:用于std::string::c_str()将 C++ 字符串转换为类 C 字符串myCppString.c_str()。这个操作主要是访问内存,所以非常快。

于 2021-07-09T09:14:57.020 回答