Special characters (á,ç,é,...) don´t work

Oct 11, 2007 at 7:40 PM
We are using smartpart but when the user control have a special characters like á,é,í,ó,ü,ç,... these characters are change to other that look like a box. In portuguese these characters are very importants.
Feb 12, 2008 at 3:19 PM
Hello!
You can pass that problem by changing the encoding when you save your project.
When you go save your ascx file just call the Advance Save Options and change the Encoding to Unicode (UTF-8 with signature) - Codepage 65001, and give it a try;)
I know that in portuguese this are important characters:) TUGA!

Sorry for the very very late reply, but only now I read this one!
Feb 12, 2008 at 4:21 PM
Thanks, I'll try it.
May 26, 2009 at 12:08 PM

That didn't work.

Any other way?

Thanks,

Joel

Dec 14, 2009 at 12:02 PM

To solve this problem I created a function that makes the translation of special characters to the correct version. It may not be the best solution but it works.

 

public static string ConvertSpecialCharacters(string strInput)
        {
            /*
            Ã£ ã
            Ãƒ Ã
            Ã§ ç
            Ã‡ Ç
            Ã¡ á
            Ã Á
            Ã" " à
            Ã€ À
            Ã³ ó
            Ã“ Ó
            Ãµ ú
            Ãš Ú
            Ã© é
            Ã‰ É
            Ã­ í
            Ã Í
             * 
            
             
ÀÁÉÍÓÚÃÕÇáàãéíóõúç
ÀÁÉÍÓÚÃÕÇáàãéíóõúç
             
            */
            string strOutput = strInput;
            
            List<string> invalidChar = new List<string>();
            List<string> correctChar = new List<string>();
            
            invalidChar.Add("&#195;€");
            correctChar.Add("À");
            invalidChar.Add("À");
            correctChar.Add("À");
            
            invalidChar.Add("&#195;");
            correctChar.Add("Á");
            invalidChar.Add("Á");
            correctChar.Add("Á");
            
            invalidChar.Add("&#195;‰");
            correctChar.Add("É");  
            invalidChar.Add("É");
            correctChar.Add("É");
            
            invalidChar.Add("&#195;“");
            correctChar.Add("Ó");
            invalidChar.Add("Ó");
            correctChar.Add("Ó");
            
            invalidChar.Add("&#195;š");
            correctChar.Add("Ú");
            invalidChar.Add("Ú");
            correctChar.Add("Ú");
            
            invalidChar.Add("&#195;ƒ");
            correctChar.Add("Ã");
            invalidChar.Add("Ã");
            correctChar.Add("Ã");
            invalidChar.Add("&#195;•");
            correctChar.Add("Õ");
            invalidChar.Add("Õ");
            correctChar.Add("Õ");
            
            invalidChar.Add("&#195;‡");
            correctChar.Add("Ç");
            invalidChar.Add("Ç");
            correctChar.Add("Ç");
            
            invalidChar.Add("&#195;&#161;");
            correctChar.Add("á");
            invalidChar.Add("á");
            correctChar.Add("á");
           
            invalidChar.Add("&#195;&#160;");
            correctChar.Add("à");
            invalidChar.Add("Ã ");
            correctChar.Add("à");
            invalidChar.Add("&#195;&#163;");
            correctChar.Add("ã");
            invalidChar.Add("ã");
            correctChar.Add("ã");
           
            invalidChar.Add("&#195;&#169;");
            correctChar.Add("é");
            invalidChar.Add("é");
            correctChar.Add("é");
            
            invalidChar.Add("&#195;&#173;");
            correctChar.Add("í");
            invalidChar.Add("í");
            correctChar.Add("í");
            
            invalidChar.Add("&#195;&#179;");
            correctChar.Add("ó");   
            invalidChar.Add("ó");
            correctChar.Add("ó");
            
            invalidChar.Add("&#195;&#181;");
            correctChar.Add("õ");
            invalidChar.Add("õ");
            correctChar.Add("õ");           
            
            invalidChar.Add("&#195;&#186;");
            correctChar.Add("ú");
            invalidChar.Add("ú");
            correctChar.Add("ú");
           
            invalidChar.Add("&#195;&#167;");
            correctChar.Add("ç");
            invalidChar.Add("ç");
            correctChar.Add("ç");
      
            for (int i = 0; i < invalidChar.Count; i++)
            {
                strOutput = strOutput.Replace(invalidChar[i], correctChar[i]);
            }
            return strOutput;
        }

 

public static string ConvertSpecialCharacters(string strInput)

        {

            string strOutput = strInput;

 

            List<string> invalidChar = new List<string>();

            List<string> correctChar = new List<string>();

 

            invalidChar.Add("&#195;€");

            correctChar.Add("À");

            invalidChar.Add("À");

            correctChar.Add("À");

 

            invalidChar.Add("&#195;");

            correctChar.Add("Á");

            invalidChar.Add("Á");

            correctChar.Add("Á");

 

            invalidChar.Add("&#195;‰");

            correctChar.Add("É");  

            invalidChar.Add("É");

            correctChar.Add("É");

 

            invalidChar.Add("&#195;“");

            correctChar.Add("Ó");

            invalidChar.Add("Ó");

            correctChar.Add("Ó");

 

            invalidChar.Add("&#195;š");

            correctChar.Add("Ú");

            invalidChar.Add("Ú");

            correctChar.Add("Ú");

 

            invalidChar.Add("&#195;ƒ");

            correctChar.Add("Ã");

            invalidChar.Add("Ã");

            correctChar.Add("Ã");

 

            invalidChar.Add("&#195;•");

            correctChar.Add("Õ");

            invalidChar.Add("Õ");

            correctChar.Add("Õ");

 

            invalidChar.Add("&#195;‡");

            correctChar.Add("Ç");

            invalidChar.Add("Ç");

            correctChar.Add("Ç");

 

            invalidChar.Add("&#195;&#161;");

            correctChar.Add("á");

            invalidChar.Add("á");

            correctChar.Add("á");

 

            invalidChar.Add("&#195;&#160;");

            correctChar.Add("à");

            invalidChar.Add("Ã ");

            correctChar.Add("à");

 

            invalidChar.Add("&#195;&#163;");

            correctChar.Add("ã");

            invalidChar.Add("ã");

            correctChar.Add("ã");

 

            invalidChar.Add("&#195;&#169;");

            correctChar.Add("é");

            invalidChar.Add("é");

            correctChar.Add("é");

 

            invalidChar.Add("&#195;&#173;");

            correctChar.Add("í");

            invalidChar.Add("í");

            correctChar.Add("í");

 

            invalidChar.Add("&#195;&#179;");

            correctChar.Add("ó");   

            invalidChar.Add("ó");

            correctChar.Add("ó");

 

            invalidChar.Add("&#195;&#181;");

            correctChar.Add("õ");

            invalidChar.Add("õ");

            correctChar.Add("õ");           

 

            invalidChar.Add("&#195;&#186;");

            correctChar.Add("ú");

            invalidChar.Add("ú");

            correctChar.Add("ú");

 

            invalidChar.Add("&#195;&#167;");

            correctChar.Add("ç");

            invalidChar.Add("ç");

            correctChar.Add("ç");

 

 

            for (int i = 0; i < invalidChar.Count; i++)

            {

                strOutput = strOutput.Replace(invalidChar[i], correctChar[i]);

            }

 

            return strOutput;

        }

 

 

Jan 19, 2012 at 5:01 PM
Edited Jan 20, 2012 at 9:14 AM

Hello, sorry for the reviving of the thread.

 

I have this same situation, and since this aplication is for portuguese people, those characters are truly important.

 

I have tried the function posted above, and it works. However, when the web part that uses the user control goes in edit mode again, the special characters are, once again, badly encoded.

 

Is there a different solution for this?

 

Thanks