using System.Globalization;
public static void Main()
Console.WriteLine("Hello World");
String s0 = "Martín Muñoz";
String s1 = "MartÕn Muñoz";
String s2 = "Martin Munoz";
String s3 = "Martin MuÑoz Güido 123";
Console.WriteLine("decodeValue s0: ");
Console.WriteLine("\ndecodeValue s1: ");
Console.WriteLine("\ndecodeValue s2: ");
Console.WriteLine("\ndecodeValue s3: ");
public static string decodeValue(string text){
bool isUnicode = IsUnicode(text);
result = decodeStringToISO(text, "ISO");
bool isUnicode2 = IsUnicode(result);
result = decodeStringToISO(text,"default");
Console.WriteLine("result req: " + text + ", resp: " + result);
public static bool IsUnicode(string input)
var asciiBytesCount = Encoding.ASCII.GetByteCount(input);
var unicodBytesCount = Encoding.UTF8.GetByteCount(input);
return asciiBytesCount != unicodBytesCount;
public static string decodeStringToISO(string value, string type)
string decodedString = string.Empty;
data = Encoding.GetEncoding("ISO-8859-8").GetBytes(value);
data = Encoding.Default.GetBytes(value);
decodedString = Encoding.UTF8.GetString(data);
Console.WriteLine("decodeStringToISO type " + type + ", req: " + value + ", resp: " + decodedString);