public string ConvertToOEM(string FBuffer)
{
if (string.IsNullOrEmpty(FBuffer))
return "";
if (FBuffer.StartsWith("<![CDATA["))
return FBuffer;
FBuffer = FBuffer.Replace("&", "&");
FBuffer = FBuffer.Replace("<", "<");
FBuffer = FBuffer.Replace(">", ">");
FBuffer = FBuffer.Replace("\"", """);
FBuffer = FBuffer.Replace("\t", " ");
FBuffer = FBuffer.Replace("\n", ";");
FBuffer = FBuffer.Replace("\r", "");
FBuffer = FBuffer.Replace("'", "'");
FBuffer = FBuffer.Replace("& lt;", "<");
FBuffer = FBuffer.Replace("& gt;", ">");
FBuffer = FBuffer.Replace("& amp;", "&");
FBuffer = FBuffer.Replace("&amp;", "&");
FBuffer = FBuffer.Replace("&lt;", "<");
FBuffer = FBuffer.Replace("&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