Преобразование специальных символов из MS-Word или Open Office Writer в Блокнот

У меня есть строка, и я использую GEMBOX SPREADSHEET

string sr = “Save as type”; 

В этом -- Сохранить как тип -- обычная строка, но когда я загружаю текстовый файл с помощью GEMBOX

этот символ

“Save as type”

конвертируется в

�Save as type�

Как решить эту проблему? Это код появляется, когда я пытаюсь реализовать это

65533

person Aravind    schedule 14.12.2012    source источник


Ответы (1)


Вы можете использовать следующую функцию для замены специальных символов Word/Excel при разборе данных с рабочих листов:

public static string ReplaceWordChars(this string text)
{
    var s = text;

    s = Regex.Replace(s, "[\u2018|\u2019|\u201A]", "'"); // smart single quotes and apostrophe
    s = Regex.Replace(s, "[\u201C|\u201D|\u201E]", "\""); // smart double quotes
    s = Regex.Replace(s, "\u2026", "..."); // ellipsis
    s = Regex.Replace(s, "[\u2013|\u2014]", "-"); // dashes
    s = Regex.Replace(s, "\u02C6", "^"); // circumflex
    s = Regex.Replace(s, "\u2039", "<"); // open angle bracket
    s = Regex.Replace(s, "\u203A", ">"); // close angle bracket
    s = Regex.Replace(s, "[\u02DC|\u00A0]", " "); // spaces

    return s;
}

Эта функция заменяет не все специальные символы, а только наиболее часто используемые в Word/Excel.

Недавно у меня была такая же проблема во время работы над проектом веб-сервиса, и я наткнулся на эту функцию во время поиска в Google. Это исходная статья, в которой я нашел код: http://www.andornot.com/blog/post/Replace-MS-Word-special-characters-in-javascript-and-C.aspx

person RiptoR    schedule 08.03.2013
comment
Я также использую этот код с этого сайта, но задал вопрос автору. ˜ — это тильда в соответствии с fileformat.info/info/unicode/char /2dc/index.htm и действительно, при вводе ALT+732 в Word появляется тильда. - person RyanfaeScotland; 03.12.2015