我正在构建一个CAML查询和我的一些值
"&"在U2U CAML Builder中翻译为"&"
但是,当我尝试匹配列表中有"&"的项目时,它失败了。
当我在值中输入"&"时,它会翻译成"&"
"&"one_answers"&"之间的区别是什么,以及如何在代码(vb.net)我应该考虑的差异?
该字符为Unicode U+0026 & & persand (38decimal, HTML: & &
),继承自ASCII中的相同值。除此之外,Unicode还有以下变体:
* U+FE60 ﹠ small ampersand (HTML: ﹠ )
* U+FF06 & fullwidth ampersand (HTML: & in block Halfwidth and Fullwidth Forms)
* U+214B ⅋ inverted ampersand (HTML: ⅋ )
信息:
http://www.fileformat.info/info/unicode/char/ff06/index.htm更多信息:
http://en.wikipedia.org/wiki/Ampersand希望对你有帮助
我现在也有同样的问题,经过一点研究,我发现,SharePoint将带有&符号(&)的Taxonomy值保存为全宽度&符号(unicode)。您可以转换您的搜索查询值(&)与TaxonomyItem.NormalizeName()
在全宽与符号(&)(见https://msdn.microsoft.com/en-us/library/microsoft.sharepoint.taxonomy.taxonomyitem.normalizename(v=office.14).aspx?cs-save-lang=1&cs-lang=vb#code-snippet-1),反之亦然与string.Normalize()
(见转换全宽到半宽)
你可以在这里找到一篇关于SharePoint &号的好文章:
https://nickhobbs.wordpress.com/2012/03/29/sharepoint - 2010 -管理-元数据-转换- & -和-双-报价- unicode/
正如其他人指出的那样,&是字符FULLWIDTH &;是一个简单的&符号。Unicode数据库声明这些字符是兼容的,这意味着如果您同时转换&和&转换为NFKD标准形式,最终将得到相同的结果(特别是&)。如果你想处理& & &;如果它们是相同的字符,也许您可以找到一个函数将字符串转换为NFKD。