2

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

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

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

网关的文档非常少,我们只有一个 php 示例可以依赖。我想我们已经弄清楚了如何“翻译”其中的大部分内容,除了 PHP 函数stripcslashes(inputvalue)。任何人都可以阐明如何在 c# 中做同样的事情吗?

我们感谢您的帮助!

4

1 回答 1

0

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(@"\", "");
于 2010-08-25T15:11:44.907 回答