English 中文(简体)
内部名称编码
原标题:Internal name encoding in SharePoint
  • 时间:2009-10-21 12:55:57
  •  标签:

该表在公众高度知情的情况下,将“S-0020_中的空间替换为“Sign Point”内部外地名称。 在与SongPoint网络服务合作时,这可以成为一条夜总会,直到你在比较外地名称时撰写一条替代规则。

我刚刚发现,在称为SSL2的领域中,还有另一个“保守例外”。 内部名称最终为x0053_SL2。 我曾尝试过像《RRL2》这样的内容,这些内容载于_x0052_。 从这一点来看,编码中使用的数字似乎是这种特性的ASCII值。 空间也将成为<代码>_x0020_。

www.un.org/Depts/DGACM/index_spanish.htm 我的问题有两个方面:。

  1. In this case, whats causing SharePoint to encode these characters.

  2. Broadly, what sort of encoding is being done and is there a general step I can do to decode strings rather than replacing specific occurances which I ve come across and know to be a problem.

问题回答

你们应当使用 系统。 Xml.XmlConvert.DecodeName

这是一个老的问题,但我想理解这个问题的第一部分,这里没有回答。

基本上,SSL2正在编码至_x0053_SL2,因为它类似于“A1模式”前电池参考([a-zA-Z]{1,5})。 当股东看到其决定中的一点时,它就须编码第一号。

这显然不是规范的XML编码,I m不会放弃任何理论,说明为什么这样做,但希望这至少能解释该组织所观察到的情况。

它是秘密的:

public static string EncodeName(string name)
{
    var encodedName = string.Empty;
    foreach (var c in name)
    {
        var s = c.ToString();
        byte[] bytes = Encoding.BigEndianUnicode.GetBytes(s);
        //Regex.Match(s, "[^x00-x80]")
        //IsCyrillic (0x400–0x4FF) и IsCyrillicSupplement (0x500–0x52F)
        //if (Regex.Match(s, @"p{IsCyrillic}|p{IsCyrillicSupplement}").Success)
        if (!Regex.Match(s, @"[a-zA-Z0-9_]").Success)
        {
            encodedName += "_x";
            foreach (var b in bytes)
            {
                encodedName += b.ToString("X2").ToLowerInvariant();
            }
            encodedName += "_";
        }
        else
        {
            encodedName += s;
        }
    }
    if (encodedName.Length > 32)
    {
        encodedName = encodedName.Substring(0, 32);
    }
    return encodedName;
}

共享点 XML编码名称,因为它希望能够将外地名称作为XML的属性。

你们可以使用 系统。 页: 1





相关问题
热门标签