tags:

views:

46

answers:

1

Hi!

I am working with a project that includes getting MMS from a mms-gateway and storing the image on disk.

This includes using a received base64encoded string and storing it as a zip to a web server. This zip is then opened, and the image is retrieved.

We have managed to store it as a zip file, but it is corrupted and cannot be opened.

The documentation from the gateway is pretty sparse, and we have only a php example to rely on. I think we have figured out how to "translate" most of it, except for the PHP function stripcslashes(inputvalue). Can anyone shed shed any light on how to do the same thing in c#?

We are thankful for any help!

A: 

stripcslashes() looks for "\x" type elements within longer strings (where 'x' could be any character, or perhaps, more than one). If the 'x' is not recognised as meaningful, it just removes the '\' but if it does recognise it as a valid C-style escape sequence (i.e. "\n" is newline; "\t" is tab, etc.), as I understand it, the recognised character is inserted instead: \t will be replaced by a tab character (0x09, I think) in your string.

I'm not aware of any simple way to get the .net framework to do the same thing without building a similar function yourself. This obviously isn't very hard, but you need to know which escape sequences to process.

If you happen to know (or find out by inspecting your base64 text) that the only thing in your input that will need processing is a particular one or two sequences (say, tab characters), it becomes very easy and the following snippet shows use of String.Replace():

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

Of course, if you really do simply want to remove all the slashes:

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