【问题标题】:Character to ASCII conversion not consistent between languages? [closed]字符到 ASCII 的转换在语言之间不一致? [关闭]
【发布时间】:2012-09-26 12:48:16
【问题描述】:

为什么 Chr(130) 在 Visual Basic 6 中是逗号 (,) 而在 C# 中 (char)130 不是? (我不确定它是什么,但绝对不是逗号!)

【问题讨论】:

  • 逗号其实是Chr(44)
  • 我建议学习字符编码。 Joel's article 可能是一个很好的起点。 VB6 Chr 使用“Windows ANSI”编码——确切的编码取决于你的Windows code page。 Jimbo,我知道你在津巴布韦,我不知道津巴布韦的默认 Windows 代码页是什么。 C# (char) 使用 2 字节 Windows Unicode 字符,Unicode UTF-16。

标签: c# vb6 char ascii


【解决方案1】:

严格来说 ASCII 是 7 位编码,只定义整数编码为 0..127 的字符。制造商经常创建代码在 128..255 范围内的字符的变体实现。

例如,请参阅Wikipedia article on ASCII

【讨论】:

  • 完全正确。 ASCII 仅定义字符的前 128 个字节值。其他 128 个值供每个国家根据需要定义。如果要表示 ASCII 的 128 个值以外的字符,请使用 UTF8。
【解决方案2】:

Vb Function Chr() 肯定不同于将整数值 130 转换为 char 的结果。要在 c# 中获得相同的结果,您可以在 c# 中设置对 Microsoft.VisualBasic 的引用并调用 Microsoft.Visualbasic.Chr(130)。

http://msdn.microsoft.com/en-us/library/613dxh46(v=vs.80).aspx

您还可以研究下面链接中公开的任何选项,看看哪个返回您想要的值。

Int to Char in C#

【讨论】:

  • 传奇 - 感谢“理解”我的问题 :)
  • UPDATE - 您可以在 Visual Studio 2008 或更高版本的 Microsoft.Visualbasic.Strings.Chr() 中找到此方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-09
  • 2021-05-20
  • 1970-01-01
相关资源
最近更新 更多