Tag: 编码

C#方法如Base64String,但只有字母数字(无加号或斜杠)

是否有任何C#方法与Convert.ToBase64String类似,但除了字母数字输出外不生成任何内容? 谢谢!

如何在TextWriter对象中更改编码?

我有一个xml,我通过API在另一个resurse发送。 我是通过XDocument创建的: XDocument xDoc = new XDocument( new XDeclaration(“1.0”, “utf-8”, “yes”), new XElement(“Entity”,new XAttribute(“Type”, “attribute1”), new XElement(“Fields”,… 当我把它放在它没有声明的请求中。 所以我接下来做: StringBuilder builder = new StringBuilder(); TextWriter writer = new StringWriter(builder); using (writer) { xDoc.Save(writer); } 但现在TextWriter将xml中的编码更改为utf-16。 我需要在utf-8上再次更改它。

在C#中使用FTP上传带有编码的文件

以下代码适用于上传文本文件,但无法上传JPEG文件(不完全 – 文件名很好但图像已损坏): private void up(string sourceFile, string targetFile) { try { string ftpServerIP = ConfigurationManager.AppSettings[“ftpIP”]; string ftpUserID = ConfigurationManager.AppSettings[“ftpUser”]; string ftpPassword = ConfigurationManager.AppSettings[“ftpPass”]; //string ftpURI = “”; string filename = “ftp://” + ftpServerIP + “//” + targetFile; FtpWebRequest ftpReq = (FtpWebRequest)WebRequest.Create(filename); ftpReq.Method = WebRequestMethods.Ftp.UploadFile; ftpReq.Credentials = new NetworkCredential(ftpUserID, ftpPassword); StreamReader stream = new StreamReader(sourceFile); […]

从C#程序集中执行JavaScript

我想从C#程序集中执行JavaScript代码,并将JavaScript代码的结果返回给调用的C#代码。 定义我不想做的事情更容易: 我不是试图从我的代码后面的网页上调用JavaScript函数。 我不是要加载WebBrowser控件。 我不想让JavaScript对服务器执行AJAX调用。 我想要做的是在JavaScript中编写unit testing,然后unit testing输出JSON,即使是纯文本也没问题。 然后我想要一个通用的C#class / executible,可以加载包含JS的文件,运行JSunit testing,废弃/加载结果,并在后期构建任务中返回带有详细信息的通过/失败。 我认为使用旧的ActiveX ScriptControl是可能的,但似乎应该有一种.NET方法来实现这一点,而不使用SilverLight,DLR或其他尚未发布的东西。 有人有主意吗? 更新: 来自Brad Abrams博客 namespace Microsoft.JScript.Vsa { [Obsolete(“There is no replacement for this feature. ” + “Please see the ICodeCompiler documentation for additional help. ” + “http://go.microsoft.com/fwlink/?linkid=14202”)] 澄清:我们对使用JSUnit框架用JavaScript编写的JavaScript函数进行了unit testing。 现在,在构建过程中,我们必须手动加载网页并单击按钮以确保所有JavaScriptunit testing都通过。 我希望能够在运行后自动C#unit testing的后期构建过程中执行测试,并报告C#unit testing的成功/失败,并将它们用作指示是否构建被打破。

从生成它的应用程序中调试生成的.NET程序集

简而言之:如何在生成程序上调试调试会话期间生成的代码? (见下面的代码) 我面临以下问题:我想从生成它的应用程序调试动态生成/编译的代码。 我提供了一个简单的例子来澄清它。 这个例子不需要调试! 我真正的应用程序生成更多的行和代码,真正certificate调试,相信我:-)我想知道是否有一种方法可以在HelloWorld上调试或设置断点。 单步调用InvokeMethod调用不起作用。 也许解决方案涉及在调用站点对生成的程序集进行代码修改。 我已经看了很多问题(例如, 在Visual Studio .NET中调试动态加载的程序集 ),但没有一个有助于解决问题(如果可以解决的话?) 我从http://www.csharpfriends.com/Articles/getArticle.aspx?articleID=118中获取代码作为基础并修复了已废弃的调用。 除此之外,我在内存中即时生成了程序集,并且调用运行良好。 我明确地生成了一个包含Debug信息的程序集,这给了我希望:为什么在没有调试的情况下会有选项呢? using System; using System.Text; using System.IO; using Microsoft.CSharp; using System.CodeDom.Compiler; using System.Reflection; namespace DynamicAssembly { class CreateCompileExecute { [STAThread] static void Main(string[] args) { // Creates a text file to store the new class StringBuilder builder = new StringBuilder(); […]

如何从URL中获取数据并将其保存到C#.NET中的二进制文件中,而不会出现编码问题?

在C#.NET中,我想从URL获取数据并将其保存为二进制文件。 使用HttpWebRequest / Streamreader读取字符串并使用StreamWriter保存可以正常使用ASCII,但非ASCII字符会受到损坏,因为系统认为它必须担心编码,编码为Unicode或来自或等等。 从URL获取数据并将其保存到文件(二进制文件)的最简单方法是什么? // This code works, but for ASCII only String url = “url…”; HttpWebRequest request = (HttpWebRequest) WebRequest.Create(url); // execute the request HttpWebResponse response = (HttpWebResponse) request.GetResponse(); // we will read data via the response stream Stream ReceiveStream = response.GetResponseStream(); StreamReader readStream = new StreamReader( ReceiveStream ); string contents = readStream.ReadToEnd(); […]

如何编码文件名以供下载?

当文件名是“Algunas MARCAS quenosacompañan”时,当我尝试下载该文件时,ASP.NET MVC会引发System.FormatException 。 但如果文件名是“Asistente de Gerencia Comercial”则不然。 我想这是因为与UTF-8编码相关的东西,但我不知道如何编码该字符串。 如果我是对的,我怎么能用UTF-8编码对字符串进行编码? 如果我不对,我的问题是什么?

C#读取带有不同编码字符的XML

我在阅读XML时遇到了问题。 找到了解决方案,但仍有一些问题。 不正确的XML文件以UTF-8编码,并在其标题中包含适当的标记。 但它还包括一个用UTF-16编码的字符 – ‘é’。 此代码用于读取XML文件以validation其内容: var xDoc = XDocument.Load(taxFile); 它引发了指定的错误XML文件的exception:“给定编码中的字符无效。第59行,第104位。” 快速解决方法如下: XDocument xDoc = null; using (var oReader = new StreamReader(taxFile, Encoding.UTF8)) { xDoc = XDocument.Load(oReader); } 此代码不会引发错误文件的exception。 但’é’字符加载为 。 我的第一个问题是“它为什么有用?”。 另一点是使用XmlReader不会引发exception,直到加载了’é’的节点。 XmlReader xmlTax = XmlReader.Create(filePath); 再次使用StreamReader进行锻炼会有所帮助。 同样的问题。 似乎修复解决方案不够好,导致有一天:)以其他格式编码的XML可能会出现,并且可能以错误的方式进行。 但我试图处理UTF-16格式的XML文件,它工作正常(配置为UTF-8)。 最后一个问题是,是否有任何选项可供XDocument / XmlReader忽略字符编码或像这样的smth。 期待您的回复。 提前致谢

从转义的ASCII序列中读取UTF8 / UNICODE字符

我在文件中有以下名称,我需要将字符串作为UTF8编码的字符串读取,所以从这里: test_\303\246\303\270\303\245.txt 我需要获得以下内容: test_æøå.txt 你知道如何使用C#实现这一目标吗?

我应该为TextBox控件的序列化数据指定哪种编码

假设我的WinForms应用程序中有一个TextBox 。 当用户单击按钮时,应用程序应通过TCP发送存储在此TextBox的序列化值。 对于序列化我正在使用Newtonsoft.Json库,如下所示: string json = JsonConvert.SerializeObject(credentials); 其中credentials是保存TextBox值的类的对象。 然后我需要通过TcpClient类通过网络发送它: TcpClient client = new TcpClient(IpAddress, Port); NetworkStream stream = client.GetStream(); // ??? 但我需要先将json字符串转换为字节数组,所以我必须指定一个文本编码。 我应该指定哪种文本编码非常安全? 我不能只将它设置为ASCII,因为用户可以输入unicode字符。