NFe.ConvertTxt.NFeW.ConvertToOEM C# (CSharp) Method

ConvertToOEM() public method

ConvertToOEM
public ConvertToOEM ( string FBuffer ) : string
FBuffer string
return string
        public string ConvertToOEM(string FBuffer)
        {
            if (string.IsNullOrEmpty(FBuffer))
                return "";

            if (FBuffer.StartsWith("<![CDATA["))
                return FBuffer;

            FBuffer = FBuffer.Replace("&", "&amp;");
            FBuffer = FBuffer.Replace("<", "&lt;");
            FBuffer = FBuffer.Replace(">", "&gt;");
            FBuffer = FBuffer.Replace("\"", "&quot;");
            FBuffer = FBuffer.Replace("\t", " ");
            FBuffer = FBuffer.Replace("\n", ";");
            FBuffer = FBuffer.Replace("\r", "");
            FBuffer = FBuffer.Replace("'", "&#39;");
            FBuffer = FBuffer.Replace("&amp; lt;", "&lt;");
            FBuffer = FBuffer.Replace("&amp; gt;", "&gt;");
            FBuffer = FBuffer.Replace("&amp; amp;", "&amp;");
            FBuffer = FBuffer.Replace("&amp;amp;", "&amp;");
            FBuffer = FBuffer.Replace("&amp;lt;", "&lt;");
            FBuffer = FBuffer.Replace("&amp;gt;", "&gt;");

            String normalizedString = FBuffer.Normalize(NormalizationForm.FormD);
            StringBuilder stringBuilder = new StringBuilder();

            for (int i = 0; i < normalizedString.Length; i++)
            {
                Char c = normalizedString[i];
                if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
                {
                    switch (Convert.ToInt16(normalizedString[i]))
                    {
                        case 94:    ///^
                        case 96:    ///`
                        case 126:   ///~
                        case 8216:  ///‘
                        case 8217:  ///’
                        case 161:   ///¡
                        case 162:   ///¢
                        case 163:   ///£
                        case 164:   ///¤
                        case 165:   ///¥
                        case 166:   ///¦
                        case 167:   ///§
                        case 168:   ///¨
                        case 171:   ///«
                        case 172:   ///¬
                        case 169:   ///©
                        case 174:   ///®
                        case 175:   ///¯
                        case 177:   ///±
                        case 180:   ///´
                        case 181:   ///µ
                        case 182:   ///¶
                        case 183:   ///·
                        case 187:   ///»
                        case 188:   ///¼
                        case 189:   ///½
                        case 190:   ///¾
                        case 191:   ///¿
                        case 198:   ///Æ
                        case 208:   ///Ð
                        case 216:   ///Ø
                        case 222:   ///Þ
                        case 223:   ///ß
                        case 230:   ///æ
                        case 240:   ///ð
                        case 247:   ///÷
                        case 248:   ///ø
                        case 254:   ///þ
                        case 184: c = ' '; break; ///¸
                        case 170: c = 'a'; break; ///ª
                        case 176: c = 'o'; break; ///°
                        case 178: c = '2'; break; ///²
                        case 179: c = '3'; break; ///³
                        case 185: c = '1'; break; ///¹
                        case 186: c = 'o'; break; ///º
                        case 732: c = 'Ø'; break; ///˜                          
                    }
                    stringBuilder.Append(c);
                }
            }
            return stringBuilder.ToString();
        }
        #endregion