根据MSDN vb.net uses this extended character set。在我的经验,它实际上使用这样的:vb.net字符集
- 我缺少什么?它为什么说它使用那个并使用另一个?
- 我做错了什么?
- 是否有某种转换工具到原始字符集?
根据MSDN vb.net uses this extended character set。在我的经验,它实际上使用这样的:vb.net字符集
这一现象在Chr
command的文档中定义:
返回的值取决于代码页当前线程,它包含在TextInfo类的ANSICodePage财产在System.Globalization命名空间。您可以通过指定System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage来获取ANSICodePage。
因此,对于大于127的值,Chr
的输出与系统有关。如果您想要重现结果,请致电Encoding.GetEncoding(String)创建所需的Encoding
实例,然后使用Encoding.GetChars(Byte())将您的数值转换为字符。
如果go up one level在你的问题挂在图表中,你会看到,他们并不认为这张图是永远Chr
命令的输出:出现在Windows上面127取决于
字符在选定的字体上。
本节中的图表显示控制台应用程序的默认字符集。
您的应用程序是WinForm应用程序,而不是控制台应用程序。即使在控制台中,所使用的字符集也可以更改(例如,通过使用chcp
命令),因此单词“default”。
有关.net中使用的编码的详细信息,我推荐以下MSDN文章:Character Encoding in the .NET Framework。
你是怎么写这些的?因为通常情况下,当您使用输出流函数时,您可以指定与之一起使用的编码。
编辑:我知道这是不是C#,但可以看到的想法...
你必须设置你的文件流的编码,通过做这样的事情: Setting the encoding when creating the filestream
第一个字符集是代码页437(CP437),第二个字符集看起来像代码页1252(CP1252),也称为Windows Latin-1。
我猜想VB.Net只是简单地为PC提供默认编码。
猜测是准确的,Chr()和Asc()使用默认的系统代码页,在西欧和美洲通常为1252。使用ChrW()和AscW()来处理Unicode。 437是旧的IBM PC代码页,仍然是控制台模式应用程序的默认值。 – 2010-11-16 15:58:17
我在控制台中使用了writeline(chr(Number))。 Textbox.text = chr(数字)为你看到的图片。 – 2010-11-16 14:33:54