vb.net字符集

时间:2010-11-16 14:23:16

标签: vb.net character-encoding character-set

根据MSDN vb.net uses this extended character set。根据我的经验,它实际上使用了这个:

alt text

  1. 我错过了什么?为什么它说它使用一个并使用另一个?
  2. 我做错了吗?
  3. 原始字符集是否有某种转换工具?

3 个答案:

答案 0 :(得分:6)

此行为在Chr command

的文档中定义
  

返回值取决于当前线程的代码页,该代码页包含在System.Globalization命名空间中TextInfo类的ANSICodePage属性中。您可以通过指定System.Globalization.CultureInfo.CurrentCulture.TextInfo.ANSICodePage来获取ANSICodePage。

因此,Chr的值大于127的输出取决于系统。如果您想要可重现的结果,请致电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

答案 1 :(得分:2)

第一个字符集是Code Page 437(CP437),第二个字符集就像Code Page 1252(CP1252),也称为Windows Latin-1。

我猜VB.Net只是简单地选择PC的默认编码。

答案 2 :(得分:1)

你是怎么写这一切的?因为通常,当您使用输出流功能时,您可以指定随之而来的编码。

编辑:我知道这不是C#,但你可以看到这个想法......

您必须通过执行以下操作来设置文件流的编码: Setting the encoding when creating the filestream