繁体   English   中英

编码问题:将vbscript“ Chr()”转换为.Net C#

[英]Encoding issue: vbscript “Chr()” to .Net C#

我似乎找不到这个问题的答案。

似乎我应该能够通过简单地沿(char)MyInt的代码做一些事情来复制vb的Chr()函数的行为,从而将C#中的数字转换为字符。 然而,这种情况并非如此:

在带有asp页面的VB脚本中,如果我的代码表明:

Response.Write(Chr(139))

它输出:

‹ (character code 8249)

反对:

(字符代码139)

我在编码中缺少某些地方,但是找不到。 Chr()使用什么编码?

我相信Chr()使用系统默认编码-因此大致相当于:

byte[] bytes = new byte[] { 139 };
char c = Encoding.Default.GetString(bytes)[0];

在我的机器上(默认为Windows CP1252)确实提供了Unicode 8249。

如果您想从C#调用具有VB的Chr完全相同行为的东西,那么,为什么不简单地调用它而不是尝试推断其行为呢?

只需输入一个“使用Microsoft.VisualBasic;” 在C#程序的顶部,将VB运行时DLL添加到您的引用中,然后转到城镇。

如果将int转换为char ,则将获得具有整数形式的Unicode字符代码的字符。 char数据类型只是一个16位UTF-16字符代码。

要获得.NET中的VBScript chr()函数的等效功能,您将需要以下内容:

string s = Encoding.Default.GetString(new byte[]{ 139 });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM