Tag: 编码

c#HttpWebResponse头编码

我有以下问题。 我联系了一个我知道使用301重定向的地址。 使用HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUrl); 和loHttp.AllowAutoRedirect = false; 这样我就不会被重定向了。 现在我得到响应的标题以识别新的url。 使用loWebResponse.GetResponseHeader(“Location”); 问题是,由于此URL包含希腊字符,因此返回的字符串全部混乱(由于编码)。 完整图片代码: HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(lcUrl); loHttp.ContentType = “application/x-www-form-urlencoded”; loHttp.Method = “GET”; Timeout = 10000; loHttp.AllowAutoRedirect = false; HttpWebResponse loWebResponse = (HttpWebResponse)loHttp.GetResponse(); string url= loWebResponse.Headers[“Location”];

将问题ANSI转换为UTF8 C#

我在c#中将文本文件从ANSI转换为UTF8时遇到问题。 我尝试在浏览器中显示结果。 所以我有一个带有许多重音字符的文本文件。 它用ANSI编码,所以我必须将它转换为utf8,因为在浏览器中而不是出现“?”的重音符号。 无论我如何尝试转换为UTF8,它仍然是“?”。 但是,如果我将notepad ++中的文本文件转换为utf8,那么重音符号就会显示出来。 这是我所做的编码代码的和平: public string Encode(string text) { // encode the string as an ASCII byte array byte[] myASCIIBytes = ASCIIEncoding.ASCII.GetBytes(text); // convert the ASCII byte array to a UTF-8 byte array byte[] myUTF8Bytes = ASCIIEncoding.Convert(ASCIIEncoding.ASCII, UTF8Encoding.UTF8, myASCIIBytes); // reconstitute a string from the UTF-8 byte array return UTF8Encoding.UTF8.GetString(myUTF8Bytes); } […]

MVC .net核心没有正确显示特殊字符

我在MVC .net核心网站上有一个非常简单的视图。 @model MvcSearch.Models.SearchModel @{ ViewData[“Title”] = “Index”; } Buscador de Información @Html.Partial(“SearchBox”, Model.Search) @if (Model.Results.Count() == 0) { No hay nada que mostrar, ¡busca algo! } 一切都是薄荷,但不是ó和¡符号,它显示了这个角色: 以前从未发生过这件事,这是我的第一个.net核心项目。 O寻找可能的解决方案, 这里和其他类似的解决方案。 但没有一个完全解决我的环境。 我尝试了第二个链接,但我遇到了一些问题。 对System.Text.Encoding(4.3.0)和System.Text.Encoding.CodePages(4.3.0)的引用都标有警告图标,但在使用Nuget Package Manager安装期间均未显示错误或警告 我完全明白我必须使用这一行 Encoding.RegisterProvider(CodePagesEncodingProvider.Instance); 但是在startup.cs中不知道到底在哪里? 我不知道这意味着什么 调用Encoding.GetEncoding重载以检索编码。 Encoding.GetEncoding方法将调用相应的EncodingProvider.GetEncoding方法来确定它是否可以提供所请求的编码。 我甚至不确定这是解决这个问题的正确方法。 我也认为脚手架视图文件的内部编码与手动创建的文件不同。 我应该创建新的空View文件并将文本复制到新文件中吗?

在不同的计算机上编码dBase III .dbf文件的问题

我正在使用C#和.NET 3.5,尝试使用带有Microsoft dBase驱动程序的ODBC从旧的dbf文件导入一些数据。 dbf采用dBase III格式,并使用ibm850编码进行字符串处理。 现在,当我在我的机器上运行我的程序时,从OdbcDataReader读取的所有字符串数据都会转换为UTF-16或UTF-8或其他东西,idk并且我将它保存为UTF-8并且一切正常,但是当我尝试在XP机器上使用此程序,某些字符无法正确转换为UTF-8。 ”’例如。 可能还有其他一些。 ‘Ä’,’Ö’和’Ü’等字符都可以。 这就是问题。 也许ODBC或驱动程序使用一些机器文化信息或其他东西来搞乱一切。 是否可以从数据库中读取字符串作为二进制文件? 也许像CONVERT或CAST这样的function? 或者我在哪里可以找到适用于此dBase驱动程序或其他驱动程序的SQL函数和语法的一些参考? 我四处搜索,找不到任何东西。 使用ODBC和SQL时我感到很盲目。 现在我正在使用临时黑客用Õ替换所有σ。 谢谢! 示例代码: System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection(); oConn.ConnectionString = @”Driver={Microsoft dBase Driver (*.dbf)};DriverID=277;Dbq=” + dbPath + “;”; oConn.Open(); System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand(); oCmd.CommandText = @”SELECT name FROM ” + dbPath + “TABLE.DBF”; System.Data.Odbc.OdbcDataReader reader = oCmd.ExecuteReader(); reader.Read(); byte[] […]

HtmlAgilityPack – 如何在加载页面时设置自定义编码

使用以下方法加载页面时是否可以设置自定义编码? HtmlWeb hwWeb = new HtmlWeb(); HtmlDocument hd = hwWeb.load(“myurl”); 我想将编码设置为“iso-8859-9”。 我使用C#4.0和WPF。 编辑: 问题已在MSDN上得到解答。

C#base64编码/解码与对象序列化问题

我正在使用C#中的序列化和反序列化来实现我的项目(这是一个类)。 它们被序列化并保存到XML文件中。 加载项目时,一切顺利。 现在我正在尝试将序列化项目编码为Base64,然后保存文件,这也很顺利。 该文件的第一行(编码之前!)如下所示: 当我解码文件时,有一个? 在行前添加: ? 我用来编码的代码: byte[] toEncodeAsBytes = System.Text.ASCIIEncoding.ASCII.GetBytes(toEncode); string returnValue = System.Convert.ToBase64String(toEncodeAsBytes); return returnValue; 和解码代码: byte[] encodedDataAsBytes = System.Convert.FromBase64String(encodedData); string returnValue = System.Text.ASCIIEncoding.ASCII.GetString(encodedDataAsBytes); return returnValue; 这可以是什么,我该如何解决这个问题?

Ftp使用utf-8字符创建文件名,例如希腊语,德语等

我正在尝试使用以下代码创建一个文件到ftp服务器(我也尝试使用UseBinary选项true和false) string username = “name”; string password = “password”; string remotefolder = “ftp://ftp.myhost.gr/public_html/test/”; string remoteFileName = “δοκιμαστικό αρχείοüß-äCopy.txt”; string localFile = @”C:\test\δοκιμαστικό αρχείο – Copy.txt”; String ftpname = “ftp://ftp.myhost.gr/public_html/test” + @”/” + Uri.EscapeUriString(Program.remoteFileName); FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpname); request.Proxy = null; request.Credentials = new NetworkCredential(username, password); request.UsePassive = true; request.KeepAlive = true; request.Method = WebRequestMethods.Ftp.UploadFile; request.UseBinary […]

从XML声明片段获取XML编码:部分内容解析不支持XmlDeclaration

我正在研究一些代码来读取包含XML声明的XML片段,例如并解析编码。 从MSDN ,我应该能够这样做: var nt = new NameTable(); var mgr = new XmlNamespaceManager(nt); var context = new XmlParserContext(null, mgr, null, XmlSpace.None); var reader = new System.Xml.XmlTextReader(@””, System.Xml.XmlNodeType.XmlDeclaration, context); 但是,我在调用System.Xml.XmlTextReader构造函数时收到System.Xml.XmlTextReader并显示错误消息: 部分内容解析不支持XmlNodeType XmlDeclaration。 我用引号搜索了这个错误 – 确切地找到零结果(编辑:现在有一个结果:这篇文章) – 并且没有引号,这没有任何用处。 我也查看了MSDN的XmlNodeType ,并没有说它不受支持。 我在这里想念的是什么? 如何从XML声明片段中获取XmlTextReader实例 ? 注意, 我的目标只是确定部分构建的XML文档的编码 ,我假设它至少包含一个声明节点; 因此,我正在努力获得reader.Encoding 。 reader.Encoding 。 如果有另一种方法可以做到这一点,我对此持开放态度。 目前,我正在使用正则表达式手动解析声明,这不是最好的方法。

可变长度整数编码

我正在尝试对LZ1 / LZ77减压算法进行逆向工程。 要输出的解码缓冲器/窗口的区域的长度在文件中被编码为可变长度整数。 我已尽可能多地阅读有关可变长度整数编码的内容,在这种情况下使用的方法似乎与我见过的其他方法不同。 也许是为了避免专利问题或者只是为了混淆。 包含的代码可能不完整,但此时它至少处理了几个文件。 我无法看到,如果有的话,下面使用的公式可以简化为更简单的方法。 大多数可变长度整数编码算法使用某种循环,但对于这一点,我无法做到这一点,因为在评估每个半字节时,公式似乎并不一致。 建议非常感谢。 private static int getLength(BitReader bitStream) { const int minSize = 2; int length = 0; byte nibble3, nibble2, nibble1; nibble3 = bitStream.ReadNibble(); if (nibble3 >= 0xc) { nibble2 = bitStream.ReadNibble(); nibble1 = bitStream.ReadNibble(); if (nibble3 == 0xF & nibble2 == 0xF & nibble1 == 0xF) […]

在C#中从Base64解码

我创建了XML Document并将此文档保存为 XmlDocument xmlDoc = new XmlDocument(); XmlDeclaration dec = xmlDoc.CreateXmlDeclaration(“1.0”, “UTF-8”, null); xmlDoc.AppendChild(dec); XmlTextWriter writer = new XmlTextWriter(fullPath,Encoding.UTF8); writer.Formatting = Formatting.Indented; xMLDoc.Save(writer); writer.Flush(); 然后我使用Base64 Encoder编码了这个文档 解码器无法解析XML文件。 我自己创建了解码器并得到了这个结果 ?\r\n\r\n \r\n 请帮我解决这个问题。 我如何保存XML文件以避免问题? 或者我如何编码到Base 64来解决问题? 我使用base64编码器来编码xml文件。 我要求提供文件。 需要使用base64编码器。 我解码自己检查问题在哪里。 解码器是Java。 他们无法解析我认为的xml文件,因为?<在文档前面。