Tag: ascii

如何将字符代码大于127的字符串正确转换为字节数组?

我正在从另一个系统检索用代码页437编码的ASCII字符串,我需要将其转换为Unicode,以便它们可以与其他Unicode字符串混合使用。 这就是我正在使用的: var asciiString = “\u0094”; // 94 corresponds represents ‘ö’ in code page 437. var asciiEncoding = Encoding.GetEncoding(437); var unicodeEncoding = Encoding.Unicode; // This is what I attempted to do but it seems not to be able to support the eight bit. Characters using the eight bit are replaced with ‘?’ (0x3F) var asciiBytes […]

C#ASCII或Unicode

嗨,我是编程和网络开发的初学者。 我有一个关于ASCII和Unicode编码的问题。 在msdn和其他Web示例中执行以下操作: byte[] byteData = Encoding.ASCII.GetBytes(data); 这是因为这些代码示例是旧的吗? 不应该是: byte[] byteData = Encoding.Unicode.GetBytes(data); 感谢您的输入!

如何在C#中生成随机命名的文本文件?

我必须创建一个循环来生成一个5个随机选择的字母字符串,然后在该名称下创建一个文本文件,让我们在C://中说,我该怎么做? 生成名称和在目录中创建文件。 我想我必须从ascii代码中选择5个随机数将它们添加到一个数组中,然后将它们转换为相应的字符,以便能够将其用作名称。 我会如何将它们转换为角色并用它们组成一个字符串,你能帮助我吗?

有没有像“用户定义的编码回退”这样的事情

使用ASCII编码并将字符串编码为字节时, ö字符会导致? 。 Encoding encoding = Encoding.GetEncoding(“us-ascii”); // or Encoding encoding = Encoding.ASCI; data = encoding.GetBytes(s); 我正在寻找一种方法来替换不同的字符,而不仅仅是一个问号。 例子: ä -> ae ö -> oe ü -> ue ß -> ss 如果不能用一个字符替换一个字符,我会接受,如果我甚至可以用一个字符替换它们( ö – > o ) 现在有几个EncoderFallback实现,但我不明白它们是如何工作的。 一个快速而肮脏的解决方案是在将字符串提供给Encoding.GetBytes()之前替换所有这些字符,但这似乎不是“正确”的方式。 我希望我能给出编码对象的替换表。 我怎么能做到这一点?

将非ascii域转换为SMTP兼容

当客户使用äüö等非ascii字符输入电子邮件地址时,我们的SMTP拒绝处理它们。 所以我认为可能有一个解决方案来自己处理这些域并将它们转换为punyocode。 使用c#有一种简单的方法吗? 这还行吗?

将两个ascii字符转换为它们的“对应”一个字符扩展ascii表示

问题:我有两个来自外部系统的固定宽度字符串。 第一个包含基本字符(如az),第二个(MAY)包含要附加到第一个字符串以创建实际字符的变音符号。 string asciibase = “Dutch has funny chars: a,e,u”; string diacrits = ” ‘ \” \””; //no clue what to do string result = “Dutch has funny chars: á,ë,ü”; 我可以写一个大规模的搜索并替换所有字符+不同的变音符号,但希望有更优雅的东西。 有人知道如何解决这个问题? 尝试计算小数值,使用string.Normalize(c#),但没有结果。 谷歌也没有真正想出办法。

将可能以null结尾的ascii byte 转换为字符串的最快方法?

我需要将一个(可能)以null结尾的ascii字节数组转换为C#中的字符串,我发现这样做的最快方法是使用下面显示的UnsafeAsciiBytesToString方法。 此方法使用String.String(sbyte *)构造函数,该构造函数在其备注中包含警告: “假设value参数指向一个数组,该数组表示使用默认ANSI代码页编码的字符串(即Encoding.Default指定的编码方法)。 注意: *因为默认的ANSI代码页是系统相关的,所以此构造函数从相同的有符号字节数组创建的字符串可能在不同的系统上有所不同。 * …… *如果指定的数组不以null结尾,则此构造函数的行为取决于系统。 例如,这种情况可能会导致访问冲突。 * “ 现在,我很肯定字符串编码的方式永远不会改变……但是我的应用程序运行的系统上的默认代码页可能会改变。 那么,为什么我不应该为使用String.String(sbyte *)而尖叫呢? using System; using System.Text; namespace FastAsciiBytesToString { static class StringEx { public static string AsciiBytesToString(this byte[] buffer, int offset, int maxLength) { int maxIndex = offset + maxLength; for( int i = offset; i < maxIndex; i++ ) { /// […]

如何在Windows Forms C#中将扩展ASCII转换为十进制?

我正在写一个Windows应用程序。 在将扩展ASCII [128-256]转换为十进制等效时遇到问题。 当我从jar文件中收到扩展的ASCII例如“Œ”时,它会进入C#应用程序,如下所示: 。 我可以知道如何将其转换为十进制等效值[ie] 140。 string textToConvert = “Œ”; Encoding iso8859 = Encoding.GetEncoding(“iso-8859-1”); Encoding unicode = Encoding.Unicode; byte[] srcTextBytes = iso8859.GetBytes(textToConvert); byte[] destTextBytes = Encoding.Convert(iso8859,unicode, srcTextBytes); char[] destChars = new char[unicode.GetCharCount(destTextBytes, 0, destTextBytes.Length)]; unicode.GetChars(destTextBytes, 0, destTextBytes.Length, destChars, 0); System.String szchar = new System.String(destChars); MessageBox.Show(szchar); 请帮我。 我该怎么办?

需要将ascii值转换为hex值

我需要将ascii转换为hex值。 请参阅Ascii表,但我有几个例子如下: ascii 1 = 31 2 = 32 3 = 33 4 = 34 5 = 35 A = 41 a = 61等 但我使用的是int而不是字符串值。 有可能做到这一点。 因此int test = 12345; 需要获得转换后的i = 3132333435

强制C#使用ASCII

我正在使用C#编写应用程序,需要从特定的数据文件格式进行读写。 目前唯一的问题是格式使用严格的单字节字符,当我使用writer和char数组(其中文件大小加倍,以及其他严重问题)时,C#一直试图抛出Unicode。 我一直在努力修改代码以使用字节数组,但是在将它们提供给树视图和数据网格控件时会引起一些抱怨,并且它涉及转换等等。 我花了一点时间谷歌搜索,似乎没有一个简单的typedef我可以用来强制char类型为我的程序使用字节,至少不会导致额外的复杂性。 是否有一种简单的方法可以强制C# .NET程序仅使用ASCII而不接触Unicode? 后来,我得到了这个几乎工作。 在BinaryReader / Writers上使用ASCIIEncoding最终修复了大部分问题(一些额外字符被添加到字符串之前发生了一些问题,但我修复了这个问题)。 我有一个最后一个问题,它很小但可能很大:在文件中,一个特定字符(打印为欧元符号)转换为? 当我加载/保存文件。 这在文本中并不是一个问题,但如果它以记录长度发生,它可能会改变大小千字节(显然不是很好)。 我认为它是由编码引起的,但如果它来自文件,为什么它不会回来? 确切的问题/结果如下: 原始文件:0x80(欧元) 编码:** ASCII:0x3F(?)** UTF8:0xC280(A-hat euro) 这些结果都不会起作用,因为文件中的任何位置都可以更改(如果在记录长度int中将80更改为3F,则可能是65 *(256 ^ 3)的差异)。 不好。 我尝试使用UTF-8编码,认为这样可以很好地解决问题,但它现在正在添加第二个字符,这更糟糕。