&and & 字符编码之间的区别



我正在构建一个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。

最新更新