How to use a specific encoding using XDocument in C# and VB.NET

To use a specific encoding when working with XDocument, you can create an XDeclaration.

Samples

C# Sample

VB.NET Sample

If you have any questions or suggestions feel free to rate this snippet, post a comment or Contact Us via Email.

Related links:

Please rate this snippet

How to change the encoding of a String using C# and VB.NET

To change the encoding of a String using .NET you can use this Extension Method which is part of the Fesslersoft.Extensions. This method needs a source and a target encoding. Some people might find the source encoding parameter needless, but as Joel stated in his excellent blogpost

“It does not make sense to have a string without knowing what encoding it uses” (Joel Spolsky)

Samples

Sample C#

VB.NET Sample

If you have any questions or suggestions feel free to rate this snippet, post a comment or Contact Us via Email.

Related links:

Please rate this snippet

How to send Data using a WebRequest in C# and VB.NET

To send/post Data using a WebRequest in C# and VB.NET you can use the following snippet.

Sample C#

public static string WebrequestWithPost(string url, Encoding dataEncoding, string dataToPost, string contentType = @"application/x-www-form-urlencoded")
{
	var postDataAsByteArray = dataEncoding.GetBytes(dataToPost);
	var returnValue = String.Empty;
	try
	{
		var webRequest = WebRequest.CreateHttp(url);  //change to: var webRequest = (HttpWebRequest)WebRequest.Create(url); if you are your .NET Version is lower than 4.5
		if (webRequest != null)
		{
			webRequest.AllowAutoRedirect = false;
			webRequest.Method = "POST";
			webRequest.ContentType = contentType;
			webRequest.ContentLength = postDataAsByteArray.Length;
			using (var requestDataStream = webRequest.GetRequestStream())
			{
				requestDataStream.Write(postDataAsByteArray, 0, postDataAsByteArray.Length);
				requestDataStream.Close();
				using (var response = webRequest.GetResponse())
				{
					using (var responseDataStream = response.GetResponseStream())
					{
						if (responseDataStream != null)
						{
							using (var responseDataStreamReader = new StreamReader(responseDataStream))
							{
								returnValue = responseDataStreamReader.ReadToEnd();
								responseDataStreamReader.Close();
							}
							responseDataStream.Close();
						}
					}
					response.Close();
				}
				requestDataStream.Close();
			}
		}
	}
	catch (WebException ex)
	{
		if (ex.Status == WebExceptionStatus.ProtocolError)
		{
			var response = ((HttpWebResponse)ex.Response);
			//handle this your own way.
			Console.WriteLine("Webexception! Statuscode: {0}, Description: {1}",(int)response.StatusCode,response.StatusDescription);
		}
	}
	catch(Exception ex) 
	{
		//handle this your own way, something serious happened here.
		Console.WriteLine(ex.Message);
	}
	return returnValue;
}

Sample VB.NET

Public Shared Function WebrequestWithPost(ByVal url As String, ByVal dataEncoding As Encoding, ByVal dataToPost As String, ByVal contentType As String) As String
    Dim postDataAsByteArray As Byte() = dataEncoding.GetBytes(dataToPost)
    Dim returnValue As String = String.Empty
    Try
        Dim webRequest As HttpWebRequest = WebRequest.CreateHttp(url)  'change to: dim webRequest as var = DirectCast(WebRequest.Create(url), HttpWebRequest) if you are your .NET Version is lower than 4.5
        If (Not (webRequest) Is Nothing) Then
            webRequest.AllowAutoRedirect = false
            webRequest.Method = "POST"
            webRequest.ContentType = contentType
            webRequest.ContentLength = postDataAsByteArray.Length
            Dim requestDataStream As Stream = webRequest.GetRequestStream
            requestDataStream.Write(postDataAsByteArray, 0, postDataAsByteArray.Length)
            requestDataStream.Close
            Dim response As Webresponse = webRequest.GetResponse
            Dim responseDataStream As Stream = response.GetResponseStream
            If (Not (responseDataStream) Is Nothing) Then
                Dim responseDataStreamReader As StreamReader = New StreamReader(responseDataStream)
                returnValue = responseDataStreamReader.ReadToEnd
                responseDataStreamReader.Close
                responseDataStream.Close
            End If
            response.Close
            requestDataStream.Close
        End If
    Catch ex As WebException
        If (ex.Status = WebExceptionStatus.ProtocolError) Then
            Dim response As HttpWebResponse = CType(ex.Response,HttpWebResponse)
            'handle this your own way.
            Console.WriteLine("Webexception! Statuscode: {0}, Description: {1}", CType(response.StatusCode,Integer), response.StatusDescription)
        End If
    Catch ex As Exception
        'handle this your own way, something serious happened here.
        Console.WriteLine(ex.Message)
    End Try
    Return returnValue
End Function

FOR MORE INFORMATIONS SEE THE MSDN: How to: Send Data Using the WebRequest Class

Please rate this snippet

How to Convert String to Stream in C# and VB.NET

To Convert String to Stream in C# and VB.NET you can use the following snippet.

Sample C#

//when using this method, put StringToStream in a using construct
public static Stream StringToStream(string input, Encoding enc)
{
	var memoryStream = new MemoryStream();
	var streamWriter = new StreamWriter(memoryStream,enc);
	streamWriter.Write(input);
	streamWriter.Flush();
	memoryStream.Position = 0;
	return memoryStream;
}

Sample VB.NET

'when using this method, put StringToStream in a using construct
Public Shared Function StringToStream(input As String, enc As Encoding) As Stream
	Dim memoryStream = New MemoryStream()
	Dim streamWriter = New StreamWriter(memoryStream, enc)
	streamWriter.Write(input)
	streamWriter.Flush()
	memoryStream.Position = 0
	Return memoryStream
End Function

Please rate this snippet

ChangeEncoding extension method for C# and VB.NET

This snippet will give you the ChangeEncoding extension method for C# and VB.NET.

Sample C#

public static string ChangeEncoding(this string input, Encoding encoding)
{
	var bytes = encoding.GetBytes(input);
	return encoding.GetString(bytes);
}

Sample VB.NET

<System.Runtime.CompilerServices.Extension> _
Public Shared Function ChangeEncoding(input As String, encoding As Encoding) As String
	Dim bytes = encoding.GetBytes(input)
	Return encoding.GetString(bytes)
End Function

Please rate this snippet

How to remove unicode characters from a string in C# and VB.NET

There are various methods to remove unicode characters from a String in .NET.
Below i will show you some methods and the benchmark results.
Before choosing a method, take a look at the Benchmark result and the Framework Compatibility.

Benchmark Summary

A for Loop removed 100 000 times the unicode characters of the string value
ᾭHeὣlݬl♫oѪ₪ Wor♀ld. This has been repeated 40 Times for each method. All Methods returned the right result Hello World.

Method Average runtime (ms)
Regex 2 433 204
Regex (compiled) 1 646 337
String Normalization 1 016 305
Encodings 2 183 387
LINQ 492 708

 

Methods

Remove Unicode Characters using Regex

C# Version

VB.NET Version

Compatibility: working .NET 2.0 working .NET 3.0 not tested .NET 3.5 not working .NET 4.0 not working .NET 4.5

 

Remove Unicode Characters using Regex (Compiled)

C# Version

VB.NET Version

Compatibility: working .NET 2.0 working .NET 3.0 not tested .NET 3.5 not working .NET 4.0 not working .NET 4.5

 

Remove Unicode Characters using String Normalization

C# Version

VB.NET Version

Compatibility: working .NET 2.0 working .NET 3.0 not tested .NET 3.5 not working .NET 4.0 not working .NET 4.5

 

Remove Unicode Characters using Encodings

C# Version

VB.NET Version

Compatibility: working .NET 2.0 working .NET 3.0 not tested .NET 3.5 not working .NET 4.0 not working .NET 4.5

 

Remove Unicode Characters using LINQ

C# Version

VB.NET Version

Compatibility: working .NET 2.0 working .NET 3.0 not tested .NET 3.5 not working .NET 4.0 not working .NET 4.5

Do you have an alternate or faster method for removing unicode?

If you have any questions or suggestions feel free to rate this snippet, post a comment or Contact Us via Email.

Related links:

Please rate this snippet