和&之间的区别字符编码

时间:2011-04-15 12:14:48

标签: character-encoding special-characters

我正在构建一个CAML查询,我的一些值已经

“&”在U2U CAML Builder中转换为“&”

但是,当我尝试匹配列表中包含“&”的项目时它失败了。

当我输入“&”时进入valeus它转换为“&”

“&”和“&”之间有什么区别我应该如何在代码(vb.net)中解释差异?

3 个答案:

答案 0 :(得分:2)

字符是Unicode U + 0026&ampersand(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

我希望对你有所帮助

答案 1 :(得分:1)

正如其他人所指出的那样,&是字符FULLWIDTH AMPERSAND,而&是一个简单的AMPERSAND。 Unicode数据库声明这些字符是兼容的,这意味着如果你同时转换&和&进入NFKD正常形式,你将得到相同的结果(特别是&)。如果你想治疗&和&好像它们是相同的字符,也许你可以找到一个将你的字符串转换成NFKD的函数。

答案 2 :(得分:0)

我现在遇到了同样的问题,经过一些研究后,我发现,SharePoint保存了分类标准值,用&符号(&)作为全宽&符号(&)(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()(请参阅Convert fullwidth to halfwidth

您可以在此处找到关于SharePoint&符号的好文章:

https://nickhobbs.wordpress.com/2012/03/29/sharepoint-2010-managed-metadata-converts-ampersand-and-double-quotes-to-unicode/