从字符串编码字符

时间:2017-12-09 23:01:56

标签: c# .net c#-4.0 encoding character-encoding

我有一个字符串

" \ u00c7"

我可以用代码转换它;

char chr = Convert.ToChar("\u00c7"); // value of the chr is **Ç**

但我不能像这样转换

我在textbox1

中发誓 \ u00c7
char chr2 = Convert.ToChar(textbox1.Text); //This makes an error - number of character

我已经工作了几个小时,无法找到解决方案。

1 个答案:

答案 0 :(得分:2)

没有内置的方法来执行此操作(转义序列仅在编译时解析),但它很容易自己解析字符串:

static bool TryParseAsChar(this string s, out char c)
{
    if (s != null)
    {
        if (s.Length == 1)
        {
            c = s[0];
            return true;
        }

        if (s.StartsWith("\\u", StringComparison.InvariantCulture) &&
            s.Length == 6)
        {

            var hex = s.Substring(2);

            if (int.TryParse(hex,
                             NumberStyles.AllowHexSpecifier,
                             CultureInfo.InvariantCulture,
                             out var i))
            {
                c = (char)i;
                return true;
            }
        }
    }

    c = default(char);
    return false;
}