我正在处理一个项目,其中包括从MMS网关获取MMS并将图像存储在磁盘上。

这包括使用接收到的base64encoded字符串并将其作为zip存储到Web服务器。然后打开此zip,然后检索图像。

我们已经设法将其存储为zip文件,但是它已损坏且无法打开。

网关中的文档非常稀疏,我们只有一个php示例可以依赖。我认为我们已经找到了如何“翻译”其中大部分内容的方法,除了PHP函数stripcslashes(inputvalue)。谁能阐明在C#中如何做相同的事情?

感谢您的帮助!

最佳答案

stripcslashes()在较长的字符串中查找“ \ x”类型的元素(其中“ x”可以是任何字符,或者可能是多个字符)。如果“ x”没有被认为是有意义的,它只会删除“ \”,但是如果它确实将其识别为有效的C样式转义序列(即“ \ n”是换行符;“ \ t”是制表符等)。 ),据我了解,它会插入可识别的字符:\ t将替换为字符串中的制表符(我认为是0x09)。

我不知道有什么简单的方法可以使.net框架执行相同的操作而无需自己构建类似的功能。显然这并不难,但是您需要知道要处理哪些转义序列。

如果您碰巧知道(或通过检查base64文本发现)输入中唯一需要处理的是一个或两个特定序列(例如,制表符),它将变得非常简单,下面的代码片段显示了使用String.Replace()的形式:

string input = @"Some\thing";    // '@' means string stored without processing '\t'
Console.WriteLine(input);
string output = input.Replace(@"\t", "\t");
Console.WriteLine(output);


当然,如果您确实只想删除所有斜杠:

string output = input.Replace(@"\", "");

关于c# - C#相当于stripcslashes功能?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3566134/

10-11 02:44