vb.net – F#中的Alt-Code字符
编辑/更新:
谢谢大家的回复.我知道我太模糊了,但不确定在这种情况下发布裸线代码是否有用. 在我的.vb文件中,我有一个下拉控件,其验证值为: TempUnit.DataSource = {"°C","°F","°R","K"} …存储在变量中: Dim unit As String = TempUnit.SelectedItem.ToString …与其他变量一起传递给函数: Function xxx(...,ByVal unitT As String) As Double …最终调用.fs文件并使用以下方式进行评估: let tempConv t u = match u with |"°C" -> t * 9.0 / 5.0 + 32.0 |"°R" -> t - 459.67 |"K" -> t * 9.0 / 5.0 - 459.67 |_ -> t 如果选择了开尔文以外的任何温度单位,则匹配失败并默认为其他情况(在此上下文中为华氏温度).我最终通过评估子字符串来绕过度数符号: Dim unit As String = TempUnit.SelectedItem.ToString.Substring(1) 该程序再次运行,但我不知道我改变了什么,如果有的话,使字符串匹配停止工作.我尝试的第一件事是从一个文件复制/粘贴到另一个文件,以确保它们是相同的字符串,除了尝试其他符号,但无济于事.学位符号引起了我的注意,但随后我检查了压力单位并发现了与微前缀完全相同的问题. 谢谢你,Hans Passant,我想到了unicode作为一种可能的解决方案,但在当下的热度下它似乎并不是一个简单的解决方案.感谢您的链接. 原帖: .vb和.fs文件中的字符串相同;直到F#库文件由于我不知道的原因而停止识别Alt-Code字符时才会出现问题. 如果我从F#和VB文件中的字符串定义中删除有问题的Alt-Code字符,程序将按预期工作. 什么会导致匹配在两个碰巧包含Alt-Code字符的相同字符串之间失败? 在F#(和VB)中处理Alt-Code字符的正确方法是什么? 解决方法
μ字形有点臭名昭着. Unicode有两个看起来像这样的代码点:U 03BC =“希腊小写字母Mu”和U 00B5 =“Micro sign”.一个是希腊字母表中的字母,另一个是经常出现在数学和单位中的符号.
比较μ和μ.在大多数字体中看起来几乎相同(你可以看到与Segoe UI的区别)并且非常容易欺骗人眼.排版人员坚持说他们不一样,特别是如果他们是我想象的希腊人.计算机也没有,你肯定会遇到的问题. 复制/粘贴或重新键入以进行修复. Windows中的Charmap.exe小程序非常方便. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |