解析器没有识别破折号

时间:2015-07-22 14:33:43

标签: vb.net unicode

我的程序对物理向量进行计算,它允许从网站复制/粘贴,然后尝试自动将它们解析为x,y和z组件。我遇到过一个有(3,-3,1)的网站(http://mathinsight.org/cross_product_examples)。虽然看起来很正常,但实际上VB并未认识到这个减号。在视觉上,它比正常的减号( - 和 - )长,但返回相同的45的Unicode。这张图显示了文本框中每个字符的Unicode(我在前3个前面添加了一个减号用于比较)。此外,从这个网站,我不得不使用Ctrl + c,因为右键单击显示这不是简单的HTML。

Unicodes for the characters in the vector string

一个是有效的(第一个),但第二个给VB拟合,如下所示。它不会被编译(由下面的蓝线显示)或一个简单的任务(第二个)在我的表格上破坏了。

Screen capture of VB not allowing the longer dash

我尝试过使用

    vectorString.Replace("–", "-") 

并在较长的短划线中粘贴目标字符串并将正常击键短划线作为替换,但没有任何反应。我猜是因为它们都有相同的Unicode。

有没有办法将较长的无效短划线转换为VB识别的短划线?我尝试使用Word喜欢替换减号的破折号符号,它出现在Unicode 150中。所以,显然至少有三种不同的破折号。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

Math Insight中的角色是U + 2212,减号。您在Replace电话中尝试使用的字符是U + 2013,简称。这就是为什么你的替换没有成功的原因。

除了标准的ASCII连字符( - ,U + 0045)之外,还有两个常见的短划线:短划线( - ,U + 2013)和短划线( - ,U + 2014)。还有一个数字短划线( - ,U + 2012),但它并不常见。