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

3
我有以下代码来将一个字符串转换为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
请看类似问题:http://stackoverflow.com/questions/3249503/cfstring-to-string - Mikko Viitala
1个回答

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()。这个操作大多数情况下是访问内存,所以非常快。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接