Tag: 编码

字节数组的Base-N编码

几天前,我遇到了这个用于Base-36编码字节数组的CodeReview 。 然而,接下来的答案没有触及解码回字节数组,或者可能重复使用答案来执行不同基数(基数)的编码。 链接问题的答案使用BigInteger。 因此,就实现而言,可以对基数及其数字进行参数化。 但是,BigInteger的问题在于我们将输入视为假定的整数。 但是,我们的输入(字节数组)只是一系列不透明的值。 如果字节数组以一系列零字节结束,例如{0xFF,0x7F,0x00,0x00},那么在答案中使用算法时这些字节将丢失(仅编码{0xFF,0x7F}。 如果最后一个非零字节的符号位置位,那么前一个零字节将被消耗,因为它被视为BigInt的符号分隔符。 所以{0xFF,0xFF,0x00,0x00}只能编码为{0xFF,0xFF,0x00}。 .NET程序员如何使用BigInteger创建一个合理有效且基数不可知的编码器,具有解码支持,以及处理字节序的能力,以及“解决”结束零字节丢失的能力?

在C#中将字符串(UTF-16)转换为UTF-8

我需要在C#中将字符串转换为UTF-8。 我已经尝试了很多方法,但没有一个像我想的那样有效。 我将我的字符串转换为字节数组,然后尝试将其写入XML文件(编码为UTF-8 ….)但是我得到了相同的字符串(根本没有编码)要么我得到了一个列表无用的字节….有人面临同样的问题吗? 编辑:这是我使用的一些代码: str= “testé”; byte[] utf8Bytes = Encoding.UTF8.GetBytes(str); return Encoding.UTF8.GetString(utf8Bytes); 结果是“testé”或者我期待像“testé”这样的东西……

如何更改XmlReader的字符编码

我有一个简单的XmlReader: XmlReader r = XmlReader.Create(fileName); while (r.Read()) { Console.WriteLine(r.Value); } 问题是,Xml文件中包含ISO-8859-9字符,这使得XmlReader抛出“ Invalid character in the given encoding. ”exception。 我可以在开头添加行来解决这个问题,但我想以另一种方式解决这个问题,以防我无法修改源代码文件。 如何更改XmlReader的编码?

C#中的西里尔语编码

我在MSSQL数据库中有一堆类似西里尔文的文本,需要在C#中将其转换为Cyrillic。 所以…Ðàáîòàâãðìàíèè 应该成为 Работавгермании 有什么建议? 我应该补充说,我最接近的是?aaioa aa?iaiee 这是我正在使用的代码: str = Encoding.UTF8.GetString(Encoding.GetEncoding(“Windows-1251”).GetBytes(drCurrent[“myfield”].ToString())); str = Encoding.GetEncoding(1251).GetString(Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding(1251), Encoding.UTF8.GetBytes(str)));

Encoding.GetEncoding无法在UWP应用中运行

我需要为本机字符编码一些文本文件。 在我的Windows 8.1商店应用程序中,我可以正常使用Encoding.GetEncoding()方法: Encoding.GetEncoding(“windows-1254”) 但在UWP应用程序中,我遇到了这个例外: 附加信息:’windows-1254’不是受支持的编码名称。 有关定义自定义编码的信息,请参阅Encoding.RegisterProvider方法的文档。 我不知道如何通过使用Encoding.RegisterProvider方法使其工作,任何想法?

用于将Bytes数组转换为String的编码,反之亦然

我使用此代码来加密字符串(基本上,这是在MSDN上的Rijndael类上给出的示例): public static String AESEncrypt(String str2Encrypt, Byte[] encryptionKey, Byte[] IV) { Byte[] encryptedText; using (RijndaelManaged rijAlg = new RijndaelManaged()) { // Use the provided key and IV rijAlg.Key = encryptionKey; rijAlg.IV = IV; // Create a decrytor to perform the stream transform ICryptoTransform encryptor = rijAlg.CreateEncryptor(rijAlg.Key, rijAlg.IV); // Create the streams used for encryption using […]

c#和Encoding.ASCII.GetString

byte[] header = new byte[]{255, 216}; string ascii = Encoding.ASCII.GetString(header); 我希望ASCII等于FFD8(JPEG SOI标记) 相反,我得到“????”

如何使用rs256算法使用我自己的rsa私钥来签名字节?

我有自己的私钥字符串,即 —–BEGIN RSA PRIVATE KEY—– MIICXAIBAAKBgQCSAYYgzvGTww…. …. …. ….. 3yUMYj9oYzqdrRHP0XgD0cEEvyqPBwLaNsRdFwy5qTiHjj0f+ZWHQWmqcoLmmpzyZEbIvQm/VhbjRF6iKG4WZ9Hfa7ntYRNGdWgD/KMIeZI= —–END RSA PRIVATE KEY—– 现在,我需要在C#中使用此私钥签署我的声明集以生成JWT有效负载。 我写了以下代码: var utc0 = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); var issueTime = DateTime.Now; var iat = (int)issueTime.Subtract(utc0).TotalSeconds; var exp = (int)issueTime.AddMinutes(55).Subtract(utc0).TotalSeconds; var payload = new { iss = email, prn = prn, scope = “scope”, aud […]

System.Net.Mail和=?utf-8?B?XXXXX …标题

我正在尝试使用下面的代码通过System.Net.Mail发送消息,我有时会得到像’=?utf-8?B?W3AxM25dIEZpbGV…’ (修剪过)的主题。 这是被称为的代码: MailMessage message = new MailMessage() { From = new MailAddress(“someone@somewhere.com”, “Service”), BodyEncoding = Encoding.UTF8, Body = body, IsBodyHtml = true, ReplyTo = new MailAddress(“do.not.reply@somewhere.com”), SubjectEncoding = Encoding.UTF8 }; foreach (string emailAddress in addresses) { message.To.Add(new MailAddress(emailAddress.Trim(), “Person”)); } message.Subject = subject; 我想强调的是,这并不是一直发生的。 我究竟做错了什么?

如何在c#中将字符串从utf8转换(音译)为ASCII(单字节)?

我有一个字符串对象 “有多个角色甚至特殊字符” 我正在尝试使用 UTF8Encoding utf8 = new UTF8Encoding(); ASCIIEncoding ascii = new ASCIIEncoding(); 对象,以便将该字符串转换为ascii。 我可以请某人为这个简单的任务带来一些启示,那就是打猎我的下午。 编辑1:我们要完成的是摆脱一些特殊的字符撇号等特殊字符。 我在下面发布的代码作为答案将不会处理。 基本上 奥布莱恩将成为奥?布莱恩。 其中’是特殊撇号之一