Tag: 编码

Azure Service Bus中BrokeredMessage主体的编码

我们在Azure Service Bus客户端周围有以下包装器: public virtual void SendMessage(object bodyObject) { var brokeredMessage = _messageBodySerializer.SerializeMessageBody(bodyObject); _queueClient.Send(brokeredMessage); } 使用SerializeMessageBody包含: public BrokeredMessage SerializeMessageBody(object bodyObject) { var brokeredMessage = new BrokeredMessage(bodyObject); brokeredMessage.Properties[MESSAGE_TYPE_PROPERTY_KEY] = bodyObject.GetType().AssemblyQualifiedName; return brokeredMessage; } 我已经编写了一个集成测试,通过运行SendMessage然后使用Service Bus Explorer 2.0查看消息内容来检查这是否有效。 我们这样做是为了确保我们可以使用该工具修改和重新发送消息来修改XML。 我发送的消息如下: [DataContract] public class TestServiceBusMessage { [DataMember] public Guid ExternalIdentifier { get; set; } [DataMember] public int Identifier […]

如何正确使用UrlEncode和Decode

所以我有一个文件,我上传到azure blob存储: C:\ test文件夹\ A + B \ testfile.txt 和两个扩展方法,帮助编码我的路径,以确保它被赋予有效的azure存储blob名称 public static string AsUriPath(this string filePath) { return System.Web.HttpUtility.UrlPathEncode(filePath.Replace(‘\\’, ‘/’)); } public static string AsFilePath(this string uriPath) { return System.Web.HttpUtility.UrlDecode(uriPath.Replace(‘/’, ‘\\’)); } 因此,当上传文件时,我将其编码为AsUriPath并获取名称test%20folder\A+B\testfile.txt但是当我尝试将其作为文件路径返回时,我得到test folder\AB\testfile.txt ,这显然不是相同( +已被删除) 使用UrlEncode和UrlDecode确保您获得与最初编码相同的信息的正确方法是什么?

C#CodeDom自动属性

我有一个用CodeDom创建的属性。 如何将其设置为自动属性,而不是向私有成员添加CodeFieldReferenceExpressions?

具有长非ascii名称的电子邮件附件

我尝试使用System.Net.Mail.Attachment发送System.Net.Mail.Attachment 。 附件名称是“Счёт-договор№4321от4июля.pdf” 附件创建代码: var nameEncoding = Encoding.UTF8; return new System.Net.Mail.Attachment(new MemoryStream(bytes), MessageBodiesHelpers.EncodeAttachmentName(fileName, nameEncoding), attachment.MediaType) { TransferEncoding = TransferEncoding.Base64, NameEncoding = nameEncoding }; MessageBodiesHelpers.EncodeAttachmentName中的代码取自https://social.msdn.microsoft.com/Forums/en-US/b6c764f7-4697-4394-b45f-128a24306d55/40-smtpclientsend-attachments-mit-umlauten-im-dateinamen?forum = dotnetframeworkde 如果我将该附件发送到gmail或ms exchange,则附件名称已成功解码。 但! 如果我将该附件发送到icloud,那么我会得到“???? – ???????№4321от4????。pdf” 邮件附件标题: 来自ms exchange: Content-Type: application/pdf; name=”=?utf-8?B?0KHRh9GR0YIt0LTQ?==?utf-8?B?vtCz0L7QstC+0YAg?==?utf-8?B?4oSWNDMyMSDQvtGC?==?utf-8?B?IDQg0LjRjtC70Y8u?==?utf-8?B?cGRm?=” Content-Transfer-Encoding: base64 Content-Disposition: attachment 来自icloud: Content-Transfer-Encoding: BASE64 Content-Type: APPLICATION/PDF; name=”????-??????? =?utf-8?B?4oSWNDMyMSDQvtGC?= 4 ????.pdf” 如何格式化icloud的名称? UPD 如果我将消息从outlook(ms exchange)转发到icloud,则附件名称已成功解码。 […]

MonoDroid:Encoding.ASCII.GetString失败

间歇性地,Encoding.ASCII.GetString调用失败,exception会转义所有catch块并冻结应用程序。 private string ExecuteRequest(Uri url, KeyValuePair[] postItems = null) { var data = new byte[0]; var response = new byte[0]; using (var client = new WebClient()) { if (postItems != null && postItems.Count() > 0) { string dataString = string.Join(“&”, postItems.Select( item => string.Format(“{0}={1}”, item.Key, item.Value)).ToArray()); data = new ASCIIEncoding().GetBytes(dataString); } response = client.UploadData(url, “POST”, […]

将web api blob读入一个字符串,我可以将其作为json对象的一部分发送到服务器并转回文件

我正在尝试将wav文件转换为字符串,我可以将其作为json对象的一部分发送到服务器,以便在服务器上我可以将该字符串转换回文件。 我曾尝试使用readAsBinaryString并将其作为文本读取,在将字符串读入字节数组时无法获得过去的错误。 reader.onloadend = saveMedia; reader.readAsText(Blob); //reader.readAsBinaryString(Blob); also tried. 然后回调发送一个ajax请求,其中一个对象持有“reader.result”中的字符串,并在服务器上我尝试过如下操作: System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding(); byte[] BinaryData = encoding.GetBytes(stringFromRequest); 下面这个问题的答案似乎是不应该这样做。 但我真的想这样做,因为我使用的另一个工具(微风js)。 不希望对文件数据类型使用单独的post操作。 相关: 文件API – Blob到JSON

如何在Twitter更新中处理ISO-2022-JP(和其他字符集)?

我的部分应用程序接受任意文本并将其作为Twitter更新发布。 一切正常,直到发布外国(非ASCII / UTF7 / 8)字符集,然后事情不再有效。 例如,如果有人发布: に投稿できる 它(在我的Visual Studio调试器代码中)变为: =?ISO-2022-JP 2 B 4 GyRCJEtFajlGJEckLSRrGyhC?= 谷歌搜索告诉我,这代表(减去?作为分隔符) =?ISO-2022-JP是文本编码 ?B表示它是base64编码的 ?GyRCJEtFajlGJEckLSRrGyhC? 是编码的字符串 对于我的生活,我无法弄清楚如何将这个字符串作为Twitter的原始日文字符的更新发布。 现在,将’=?ISO-2022-JP?B?GyRCJEtFajlGJEckLSRrGyhC?=’发送到Twitter将导致确切的发布。 我也尝试将字符串分成几部分,使用System.Text.Encoding从ISO-2022-JP转换为UTF8,反之亦然,base64解码而不是。 另外,我玩过状态更新的URL编码,如下所示: string[] bits = tweetText.Split(new char[] { ‘?’ }); if (bits.Length >= 4) { textEncoding = System.Text.Encoding.GetEncoding(bits[1]); xml = oAuth.oAuthWebRequest(TwitterLibrary.oAuthTwitter.Method.POST, url, “status=” + System.Web.HttpUtility.UrlEncode(decodedText, textEncoding)); } 无论我做什么,结果都不会恢复正常。 编辑:最后得到它。 对于那些跟在家里的人来说,它非常接近下面列出的答案。 只是Visual Studios调试器指导我错误的方式和我正在使用的Twitter库中的一个错误。 最终结果如下: […]

查找.NET中的哪些编码是ASCII兼容的

实际上是否有任何简单的方法可以找到.NET中的哪些编码与ASCII兼容? (基于Nyerguds评论中提出的问题。)

X.ToCharArray()。长度EQUALS GetBytes(X).Length

string s = “test”; int charCount = s.ToCharArray().Length; int byteCount = System.Text.Encoding.Default.GetBytes(s).Length; 什么时候可以(charCount!= byteCount)发生? 我相信Unicode字符但不是一般情况下。 .NET支持Unicode字符,但是.NET的默认(System.Text.Encoding.Default)编码是什么? “System.Text.Encoding.Default”将“System.Text.SBCSCodePageEncoding”显示为单字节编码。

从查询字符串中提取中文文本

我需要从ASP.NET Web应用程序中的查询字符串中提取中文字符。 当我尝试它时,我得到“????” 而不是实际的文字。 我知道我需要用UTF-8解码它,但它不起作用。 我用过: String text = System.Web.HttpUtility.UrlDecode(Request.QueryString[“text”], System.Text.Encoding.UTF8); 但我得到“???” 从操作中回来。 请帮忙。