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

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 check if a string is unicode in C# and VB.NET

To check if a string is unicode in C# and VB.NET you can use the following snippet.

Sample C#

public static bool IsUnicode(string input)
{
	var asciiBytesCount = Encoding.ASCII.GetByteCount(input);
	var unicodBytesCount = Encoding.UTF8.GetByteCount(input);
	return asciiBytesCount != unicodBytesCount;
}

Sample VB.NET

Public Shared Function IsUnicode(input As String) As Boolean
	Dim asciiBytesCount = Encoding.ASCII.GetByteCount(input)
	Dim unicodBytesCount = Encoding.UTF8.GetByteCount(input)
	Return asciiBytesCount <> unicodBytesCount
End Function

Please rate this snippet