问题:按值排列的 Unicode 扩展符号的正确顺序是什么?
如果我对 Unicode 字符列表进行 excel 排序,则顺序与我使用 excel“=code()”并按这些值排序时不同。目的是我想测量字符之间的距离,例如 ab = 1 和 &-% = 1; 当使用 excel 排序功能进行排序时,在三个内排序的两个字符的值似乎在 134 之外。
此外,一些 char 符号在 excel 中是空白的,有几个用“find”找到了两次,是两个不同的符号 - 根本没有找到几个。请解释这些“特殊”字符的详细信息。
http://en.wikipedia.org/wiki/List_of_Unicode_characters
示例代码:
int charDist = abs(alpha[index] - code[0]);
编辑:为了找出 c++ vs2008 中的 UNICODE 值,我运行每个代码作为从代码 1 到代码 255 与代码 1 的比较
cout << mem << " code " << key << " is " << abs(key[0] - '') << " from " << endl;
括号里是一个黑色的笑脸,这个网站没有字体,但是命令窗口有,在vs2008中看起来像半张贴| 与 T 的右半部分。 Excel 留下空白。
以下 Unicode 在 c++ vs2008 中不使用 std 库和 #include 9、10、13、26、34、44 处理,
而且,代码 1 到 127 的数字“距离”是正确的,但在 128 处,距离会跳过一个额外的距离,并且由于某种原因更远。然后从 128 到 255,距离反转并变得更近;255 距离 1 '' 2
如果这些遵循更合乎逻辑的东西并且只有 1 到 255 没有打嗝或跳过和反转,并且 255-1 = 254 但是嘿,我知道什么,那就太好了。
EDIT2:我发现它 - 没有绝对 - UNIFORMAT 的排序规则是 128 到 255,然后是 1 到 127,并产生 1 到 255,其中 9、10、13、26、34、44 的 6 个跳过是垃圾。这并不直观。在新的顺序 128->255,1->127 中,从 127 到 128 的奇怪跳转更加清晰,这是因为没有 0,所以在 255 和 1 之间缺少值。
解决方案:使用每个符号的值制作我自己的哈希表,并且不要依赖 c++ std 库或 vs2008 来提供 UNIFORMAT 值,因为它们对于测量 UNIFORMAT 的几个特定子集之外的字符距离是不正确的。