如何在C#中将字符串转换为cfstring

时间:2014-02-28 17:07:00

标签: c# string cfstring

我有以下代码将String转换为CFString并反向转发:

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?

1 个答案:

答案 0 :(得分:0)

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

CFStringCreateWithCString(kCFAllocatorDefault, myCString, kCFStringEncodingUTF8);

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

C++ .NET convert System::String to std::string

注意:使用 std::string::c_str() 将 C++ 字符串转换为类似 c 的字符串 myCppString.c_str()。这个操作主要是访问内存,所以速度很快。