根据MSDN vb.net使用此扩展字符集. 。根据我的经验,它实际上使用了:

alt text

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

解决方案

此行为在文档的文档中定义 Chr 命令:

返回的值取决于当前线程的代码页,该线程包含在System.globalization名称空间中的TextInfo类的Ansicodepage属性中。您可以通过指定system.globalization.curlentureinfo.currentculture.textinfo.ansicodepage获得ansicodepage。

因此,输出 Chr 对于大于127的值是系统依赖性的。如果要可重现结果,请创建所需的实例 Encoding 通过打电话 encoding.getEncoding(string), ,然后使用 encoding.getchars(byte()) 将您的数字值转换为字符。

如果你 上一个级别 在您的问题中链接的图表中,您会发现它们不会声称此图表始终是 Chr 命令:

在127上方的Windows中出现的字符取决于所选字体。

本节中的图表显示了控制台应用程序的默认字符集。

您的应用程序是Winform应用程序,而不是控制台应用程序。即使在控制台中,使用的字符集也可以更改(例如,使用 chcp 命令),因此“默认”一词。

有关.NET中使用的编码的详细信息,我建议以下MSDN文章: 在.NET框架中编码的字符.

其他提示

第一个字符集是代码第437页(CP437),第二个看起来像Code Page 1252(CP1252),也称为Windows Latin-1。

我猜vb.net只是在拾取PC的默认编码。

你是怎么写所有这些的?因为通常,当您使用输出流函数时,您可以指定使用它的编码。

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

您必须通过执行类似的操作来设置文件流的编码:创建文件流时设置编码

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top