将特殊字符从MS-Word或Open Office writer转换为记事本

时间:2012-12-14 11:56:30

标签: c# gembox-spreadsheet

我有一个字符串,我正在使用GEMBOX SPREADSHEET

string sr = “Save as type”; 

在此 - 保存类型 - 是普通字符串,但是当我加载文本文件时使用GEMBOX

此符号

“Save as type”

转换为

�Save as type�

如何解决这个问题?当我尝试实现

时,这就是代码
65533

1 个答案:

答案 0 :(得分:5)

在解析工作表中的数据时,可以使用以下函数替换特殊的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